From 5ec68e4b09da040666579bbae9922cd42379bd84 Mon Sep 17 00:00:00 2001 From: Michael Nolan Date: Tue, 7 Dec 2021 19:07:43 -0600 Subject: [PATCH] TYTD w api --- .vs/youtube-downloader/xs/UserPrefs.xml | 36 +- Program.cs | 145 +- Server/Models/YoutubeDownloaderRequest.cs | 42 - Server/Models/YoutubeDownloaderResponse.cs | 11 - Site/Site.csproj | 44 - Site/YouTubeSite.cs | 79 - Site/bin/Debug/Hyperlinq.dll | Bin 71168 -> 0 bytes Site/bin/Debug/Hyperlinq.xml | 1675 - Site/bin/Debug/Site.dll | Bin 5632 -> 0 bytes Site/bin/Release/Hyperlinq.dll | Bin 71168 -> 0 bytes Site/bin/Release/Hyperlinq.xml | 1675 - Site/bin/Release/Site.dll | Bin 5120 -> 0 bytes ...ramework,Version=v4.7.AssemblyAttribute.cs | 2 - ...amework,Version=v4.8.AssemblyAttributes.cs | 4 - .../Debug/Site.csproj.AssemblyReference.cache | Bin 523 -> 0 bytes .../Debug/Site.csproj.CoreCompileInputs.cache | 1 - .../Debug/Site.csproj.FileListAbsolute.txt | 17 - .../Site.csproj.FilesWrittenAbsolute.txt | 6 - .../Debug/Site.csprojAssemblyReference.cache | Bin 424 -> 0 bytes Site/obj/Debug/Site.dll | Bin 5632 -> 0 bytes Site/obj/Debug/Site.pdb | Bin 15872 -> 0 bytes ...ework,Version=v4.6.1.AssemblyAttributes.cs | 4 - ...amework,Version=v4.8.AssemblyAttributes.cs | 4 - ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6139 -> 0 bytes .../Site.csproj.AssemblyReference.cache | Bin 2270 -> 0 bytes .../Site.csproj.CoreCompileInputs.cache | 1 - .../Release/Site.csproj.FileListAbsolute.txt | 12 - Site/obj/Release/Site.dll | Bin 5120 -> 0 bytes Site/packages.config | 4 - TYTD.Api/MyClass.cs | 145 + {Site => TYTD.Api}/Properties/AssemblyInfo.cs | 2 +- .../Server}/Functions/Downloader.cs | 118 +- .../Server}/Functions/ffmpeg.cs | 2 +- .../Server}/Models/InfoType.cs | 4 +- .../Server}/Models/InfomationQueueItem.cs | 4 +- .../Server}/Models/SavedChannel.cs | 4 +- .../Server/Models}/SavedMedia.cs | 5 +- .../Server}/Models/SavedPlaylist.cs | 3 +- .../Server}/Models/SavedVideo.cs | 43 +- .../Server}/Models/VideoDownloadProgress.cs | 6 +- TYTD.Api/TYTD.Api.csproj | 102 + .../TYTD.Api.csproj.user | 0 TYTD.Api/bin/Release/AngleSharp.dll | Bin 0 -> 829440 bytes TYTD.Api/bin/Release/AngleSharp.xml | 25528 ++++++++++++++++ TYTD.Api/bin/Release/AsyncEnumerable.dll | Bin 0 -> 139776 bytes TYTD.Api/bin/Release/AsyncEnumerable.xml | 1675 + TYTD.Api/bin/Release/CookiesTxtParser.dll | Bin 0 -> 6144 bytes .../Release/Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes .../Release/Microsoft.Bcl.AsyncInterfaces.xml | 223 + .../Release/Microsoft.Win32.Primitives.dll | Bin 0 -> 21216 bytes TYTD.Api/bin/Release/Newtonsoft.Json.dll | Bin 0 -> 701992 bytes TYTD.Api/bin/Release/Newtonsoft.Json.xml | 11305 +++++++ TYTD.Api/bin/Release/System.AppContext.dll | Bin 0 -> 21176 bytes TYTD.Api/bin/Release/System.Buffers.dll | Bin 0 -> 20856 bytes TYTD.Api/bin/Release/System.Buffers.xml | 38 + .../Release/System.Collections.Concurrent.dll | Bin 0 -> 21224 bytes .../Release/System.Collections.NonGeneric.dll | Bin 0 -> 21224 bytes .../System.Collections.Specialized.dll | Bin 0 -> 21224 bytes TYTD.Api/bin/Release/System.Collections.dll | Bin 0 -> 21696 bytes .../System.ComponentModel.EventBasedAsync.dll | Bin 0 -> 21768 bytes .../System.ComponentModel.Primitives.dll | Bin 0 -> 21752 bytes .../System.ComponentModel.TypeConverter.dll | Bin 0 -> 22784 bytes .../bin/Release/System.ComponentModel.dll | Bin 0 -> 21192 bytes TYTD.Api/bin/Release/System.Console.dll | Bin 0 -> 21160 bytes TYTD.Api/bin/Release/System.Data.Common.dll | Bin 0 -> 154448 bytes .../Release/System.Diagnostics.Contracts.dll | Bin 0 -> 21736 bytes .../bin/Release/System.Diagnostics.Debug.dll | Bin 0 -> 21208 bytes .../System.Diagnostics.FileVersionInfo.dll | Bin 0 -> 21248 bytes .../Release/System.Diagnostics.Process.dll | Bin 0 -> 21728 bytes .../Release/System.Diagnostics.StackTrace.dll | Bin 0 -> 23936 bytes ...em.Diagnostics.TextWriterTraceListener.dll | Bin 0 -> 21280 bytes .../bin/Release/System.Diagnostics.Tools.dll | Bin 0 -> 21208 bytes .../System.Diagnostics.TraceSource.dll | Bin 0 -> 21744 bytes .../Release/System.Diagnostics.Tracing.dll | Bin 0 -> 31608 bytes .../bin/Release/System.Drawing.Primitives.dll | Bin 0 -> 21208 bytes .../bin/Release/System.Dynamic.Runtime.dll | Bin 0 -> 22224 bytes .../System.Globalization.Calendars.dll | Bin 0 -> 21744 bytes .../System.Globalization.Extensions.dll | Bin 0 -> 25992 bytes TYTD.Api/bin/Release/System.Globalization.dll | Bin 0 -> 21192 bytes .../Release/System.IO.Compression.ZipFile.dll | Bin 0 -> 21224 bytes .../bin/Release/System.IO.Compression.dll | Bin 0 -> 110944 bytes .../System.IO.FileSystem.DriveInfo.dll | Bin 0 -> 21232 bytes .../System.IO.FileSystem.Primitives.dll | Bin 0 -> 21232 bytes .../Release/System.IO.FileSystem.Watcher.dll | Bin 0 -> 21224 bytes TYTD.Api/bin/Release/System.IO.FileSystem.dll | Bin 0 -> 21192 bytes .../bin/Release/System.IO.IsolatedStorage.dll | Bin 0 -> 21208 bytes .../Release/System.IO.MemoryMappedFiles.dll | Bin 0 -> 21216 bytes TYTD.Api/bin/Release/System.IO.Pipes.dll | Bin 0 -> 21168 bytes .../System.IO.UnmanagedMemoryStream.dll | Bin 0 -> 21232 bytes TYTD.Api/bin/Release/System.IO.dll | Bin 0 -> 21144 bytes .../bin/Release/System.Linq.Expressions.dll | Bin 0 -> 22224 bytes TYTD.Api/bin/Release/System.Linq.Parallel.dll | Bin 0 -> 21192 bytes .../bin/Release/System.Linq.Queryable.dll | Bin 0 -> 21192 bytes TYTD.Api/bin/Release/System.Linq.dll | Bin 0 -> 21152 bytes TYTD.Api/bin/Release/System.Memory.dll | Bin 0 -> 141184 bytes TYTD.Api/bin/Release/System.Memory.xml | 355 + TYTD.Api/bin/Release/System.Net.Http.dll | Bin 0 -> 198472 bytes .../bin/Release/System.Net.NameResolution.dll | Bin 0 -> 21208 bytes .../Release/System.Net.NetworkInformation.dll | Bin 0 -> 22248 bytes TYTD.Api/bin/Release/System.Net.Ping.dll | Bin 0 -> 21168 bytes .../bin/Release/System.Net.Primitives.dll | Bin 0 -> 22216 bytes TYTD.Api/bin/Release/System.Net.Requests.dll | Bin 0 -> 21184 bytes TYTD.Api/bin/Release/System.Net.Security.dll | Bin 0 -> 21696 bytes TYTD.Api/bin/Release/System.Net.Sockets.dll | Bin 0 -> 30544 bytes .../System.Net.WebHeaderCollection.dll | Bin 0 -> 21232 bytes .../Release/System.Net.WebSockets.Client.dll | Bin 0 -> 21224 bytes .../bin/Release/System.Net.WebSockets.dll | Bin 0 -> 21192 bytes .../bin/Release/System.Numerics.Vectors.dll | Bin 0 -> 115856 bytes .../bin/Release/System.Numerics.Vectors.xml | 2621 ++ TYTD.Api/bin/Release/System.ObjectModel.dll | Bin 0 -> 21696 bytes .../Release/System.Reflection.Extensions.dll | Bin 0 -> 21224 bytes .../Release/System.Reflection.Primitives.dll | Bin 0 -> 21736 bytes TYTD.Api/bin/Release/System.Reflection.dll | Bin 0 -> 22200 bytes .../bin/Release/System.Resources.Reader.dll | Bin 0 -> 21200 bytes .../System.Resources.ResourceManager.dll | Bin 0 -> 21232 bytes .../bin/Release/System.Resources.Writer.dll | Bin 0 -> 21200 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 17000 bytes ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...ystem.Runtime.CompilerServices.VisualC.dll | Bin 0 -> 21784 bytes .../bin/Release/System.Runtime.Extensions.dll | Bin 0 -> 21720 bytes .../bin/Release/System.Runtime.Handles.dll | Bin 0 -> 21200 bytes ...ime.InteropServices.RuntimeInformation.dll | Bin 0 -> 28624 bytes .../System.Runtime.InteropServices.dll | Bin 0 -> 24296 bytes .../bin/Release/System.Runtime.Numerics.dll | Bin 0 -> 21200 bytes ...ystem.Runtime.Serialization.Formatters.dll | Bin 0 -> 21264 bytes .../System.Runtime.Serialization.Json.dll | Bin 0 -> 21240 bytes ...ystem.Runtime.Serialization.Primitives.dll | Bin 0 -> 27048 bytes .../System.Runtime.Serialization.Xml.dll | Bin 0 -> 24816 bytes TYTD.Api/bin/Release/System.Runtime.dll | Bin 0 -> 29360 bytes .../bin/Release/System.Security.Claims.dll | Bin 0 -> 21200 bytes ...ystem.Security.Cryptography.Algorithms.dll | Bin 0 -> 47016 bytes .../System.Security.Cryptography.Csp.dll | Bin 0 -> 21240 bytes .../System.Security.Cryptography.Encoding.dll | Bin 0 -> 21256 bytes ...ystem.Security.Cryptography.Primitives.dll | Bin 0 -> 21784 bytes ...Security.Cryptography.X509Certificates.dll | Bin 0 -> 22832 bytes .../bin/Release/System.Security.Principal.dll | Bin 0 -> 21208 bytes .../Release/System.Security.SecureString.dll | Bin 0 -> 22392 bytes .../System.Text.Encoding.CodePages.dll | Bin 0 -> 761488 bytes .../System.Text.Encoding.Extensions.dll | Bin 0 -> 21232 bytes TYTD.Api/bin/Release/System.Text.Encoding.dll | Bin 0 -> 21696 bytes .../bin/Release/System.Text.Encodings.Web.dll | Bin 0 -> 57208 bytes .../bin/Release/System.Text.Encodings.Web.xml | 932 + TYTD.Api/bin/Release/System.Text.Json.dll | Bin 0 -> 293248 bytes TYTD.Api/bin/Release/System.Text.Json.xml | 2346 ++ .../System.Text.RegularExpressions.dll | Bin 0 -> 21232 bytes .../Release/System.Threading.Overlapped.dll | Bin 0 -> 37752 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes .../System.Threading.Tasks.Extensions.xml | 166 + .../System.Threading.Tasks.Parallel.dll | Bin 0 -> 21232 bytes .../bin/Release/System.Threading.Tasks.dll | Bin 0 -> 22224 bytes .../bin/Release/System.Threading.Thread.dll | Bin 0 -> 21200 bytes .../Release/System.Threading.ThreadPool.dll | Bin 0 -> 21216 bytes .../bin/Release/System.Threading.Timer.dll | Bin 0 -> 21200 bytes TYTD.Api/bin/Release/System.Threading.dll | Bin 0 -> 22192 bytes TYTD.Api/bin/Release/System.ValueTuple.dll | Bin 0 -> 24240 bytes .../bin/Release/System.Xml.ReaderWriter.dll | Bin 0 -> 21712 bytes TYTD.Api/bin/Release/System.Xml.XDocument.dll | Bin 0 -> 21696 bytes .../Release/System.Xml.XPath.XDocument.dll | Bin 0 -> 22904 bytes TYTD.Api/bin/Release/System.Xml.XPath.dll | Bin 0 -> 21176 bytes .../bin/Release/System.Xml.XmlDocument.dll | Bin 0 -> 21712 bytes .../bin/Release/System.Xml.XmlSerializer.dll | Bin 0 -> 21712 bytes TYTD.Api/bin/Release/TYTD.Api.dll | Bin 0 -> 48640 bytes TYTD.Api/bin/Release/YoutubeExplode.dll | Bin 0 -> 215040 bytes TYTD.Api/bin/Release/YoutubeExplode.xml | 1702 ++ TYTD.Api/bin/Release/netstandard.dll | Bin 0 -> 98616 bytes ...amework,Version=v4.7.AssemblyAttributes.cs | 0 .../obj/Release/TYTD.Api.csproj.CopyComplete | 0 .../TYTD.Api.csproj.CoreCompileInputs.cache | 1 + .../TYTD.Api.csproj.FileListAbsolute.txt | 127 + .../TYTD.Api.csprojAssemblyReference.cache | Bin 0 -> 71453 bytes TYTD.Api/obj/Release/TYTD.Api.dll | Bin 0 -> 48640 bytes TYTD.Api/packages.config | 18 + bin/Debug/AngleSharp.dll | Bin 0 -> 829440 bytes bin/Debug/AngleSharp.xml | 25528 ++++++++++++++++ bin/Debug/AsyncEnumerable.dll | Bin 0 -> 139776 bytes bin/Debug/AsyncEnumerable.xml | 1675 + bin/Debug/Common.Logging.Core.dll | Bin 0 -> 10240 bytes .../Debug/Common.Logging.Core.pdb | Bin 15872 -> 11776 bytes bin/Debug/Common.Logging.dll | Bin 0 -> 45056 bytes bin/Debug/Common.Logging.pdb | Bin 0 -> 159232 bytes bin/Debug/Common.Logging.xml | 2905 ++ bin/Debug/CookiesTxtParser.dll | Bin 0 -> 6144 bytes bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 22144 bytes bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml | 223 + bin/Debug/Microsoft.Win32.Primitives.dll | Bin 0 -> 21216 bytes bin/Debug/MimeTypesMap.dll | Bin 0 -> 64512 bytes bin/Debug/Newtonsoft.Json.dll | Bin 0 -> 701992 bytes bin/Debug/Newtonsoft.Json.xml | 11305 +++++++ bin/Debug/SimpleBase.dll | Bin 0 -> 12800 bytes bin/Debug/SimpleBase.pdb | Bin 0 -> 4848 bytes bin/Debug/SimpleHTTP.dll | Bin 0 -> 27648 bytes bin/Debug/SimpleHTTP.xml | 415 + bin/Debug/System.AppContext.dll | Bin 0 -> 21176 bytes bin/Debug/System.Buffers.dll | Bin 0 -> 20856 bytes bin/Debug/System.Buffers.xml | 38 + bin/Debug/System.Collections.Concurrent.dll | Bin 0 -> 21224 bytes bin/Debug/System.Collections.NonGeneric.dll | Bin 0 -> 21224 bytes bin/Debug/System.Collections.Specialized.dll | Bin 0 -> 21224 bytes bin/Debug/System.Collections.dll | Bin 0 -> 21696 bytes .../System.ComponentModel.EventBasedAsync.dll | Bin 0 -> 21768 bytes .../System.ComponentModel.Primitives.dll | Bin 0 -> 21752 bytes .../System.ComponentModel.TypeConverter.dll | Bin 0 -> 22784 bytes bin/Debug/System.ComponentModel.dll | Bin 0 -> 21192 bytes bin/Debug/System.Console.dll | Bin 0 -> 21160 bytes bin/Debug/System.Data.Common.dll | Bin 0 -> 154448 bytes bin/Debug/System.Diagnostics.Contracts.dll | Bin 0 -> 21736 bytes bin/Debug/System.Diagnostics.Debug.dll | Bin 0 -> 21208 bytes .../System.Diagnostics.FileVersionInfo.dll | Bin 0 -> 21248 bytes bin/Debug/System.Diagnostics.Process.dll | Bin 0 -> 21728 bytes bin/Debug/System.Diagnostics.StackTrace.dll | Bin 0 -> 23936 bytes ...em.Diagnostics.TextWriterTraceListener.dll | Bin 0 -> 21280 bytes bin/Debug/System.Diagnostics.Tools.dll | Bin 0 -> 21208 bytes bin/Debug/System.Diagnostics.TraceSource.dll | Bin 0 -> 21744 bytes bin/Debug/System.Diagnostics.Tracing.dll | Bin 0 -> 31608 bytes bin/Debug/System.Drawing.Primitives.dll | Bin 0 -> 21208 bytes bin/Debug/System.Dynamic.Runtime.dll | Bin 0 -> 22224 bytes bin/Debug/System.Globalization.Calendars.dll | Bin 0 -> 21744 bytes bin/Debug/System.Globalization.Extensions.dll | Bin 0 -> 25992 bytes bin/Debug/System.Globalization.dll | Bin 0 -> 21192 bytes bin/Debug/System.IO.Compression.ZipFile.dll | Bin 0 -> 21224 bytes bin/Debug/System.IO.Compression.dll | Bin 0 -> 110944 bytes bin/Debug/System.IO.FileSystem.DriveInfo.dll | Bin 0 -> 21232 bytes bin/Debug/System.IO.FileSystem.Primitives.dll | Bin 0 -> 21232 bytes bin/Debug/System.IO.FileSystem.Watcher.dll | Bin 0 -> 21224 bytes bin/Debug/System.IO.FileSystem.dll | Bin 0 -> 21192 bytes bin/Debug/System.IO.IsolatedStorage.dll | Bin 0 -> 21208 bytes bin/Debug/System.IO.MemoryMappedFiles.dll | Bin 0 -> 21216 bytes bin/Debug/System.IO.Pipes.dll | Bin 0 -> 21168 bytes bin/Debug/System.IO.UnmanagedMemoryStream.dll | Bin 0 -> 21232 bytes bin/Debug/System.IO.dll | Bin 0 -> 21144 bytes bin/Debug/System.Linq.Expressions.dll | Bin 0 -> 22224 bytes bin/Debug/System.Linq.Parallel.dll | Bin 0 -> 21192 bytes bin/Debug/System.Linq.Queryable.dll | Bin 0 -> 21192 bytes bin/Debug/System.Linq.dll | Bin 0 -> 21152 bytes bin/Debug/System.Memory.dll | Bin 0 -> 141184 bytes bin/Debug/System.Memory.xml | 355 + bin/Debug/System.Net.Http.dll | Bin 0 -> 198472 bytes bin/Debug/System.Net.NameResolution.dll | Bin 0 -> 21208 bytes bin/Debug/System.Net.NetworkInformation.dll | Bin 0 -> 22248 bytes bin/Debug/System.Net.Ping.dll | Bin 0 -> 21168 bytes bin/Debug/System.Net.Primitives.dll | Bin 0 -> 22216 bytes bin/Debug/System.Net.Requests.dll | Bin 0 -> 21184 bytes bin/Debug/System.Net.Security.dll | Bin 0 -> 21696 bytes bin/Debug/System.Net.Sockets.dll | Bin 0 -> 30544 bytes bin/Debug/System.Net.WebHeaderCollection.dll | Bin 0 -> 21232 bytes bin/Debug/System.Net.WebSockets.Client.dll | Bin 0 -> 21224 bytes bin/Debug/System.Net.WebSockets.dll | Bin 0 -> 21192 bytes bin/Debug/System.Numerics.Vectors.dll | Bin 0 -> 115856 bytes bin/Debug/System.Numerics.Vectors.xml | 2621 ++ bin/Debug/System.ObjectModel.dll | Bin 0 -> 21696 bytes bin/Debug/System.Reflection.Extensions.dll | Bin 0 -> 21224 bytes bin/Debug/System.Reflection.Primitives.dll | Bin 0 -> 21736 bytes bin/Debug/System.Reflection.dll | Bin 0 -> 22200 bytes bin/Debug/System.Resources.Reader.dll | Bin 0 -> 21200 bytes .../System.Resources.ResourceManager.dll | Bin 0 -> 21232 bytes bin/Debug/System.Resources.Writer.dll | Bin 0 -> 21200 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 17000 bytes ...System.Runtime.CompilerServices.Unsafe.xml | 244 + ...ystem.Runtime.CompilerServices.VisualC.dll | Bin 0 -> 21784 bytes bin/Debug/System.Runtime.Extensions.dll | Bin 0 -> 21720 bytes bin/Debug/System.Runtime.Handles.dll | Bin 0 -> 21200 bytes ...ime.InteropServices.RuntimeInformation.dll | Bin 0 -> 28624 bytes bin/Debug/System.Runtime.InteropServices.dll | Bin 0 -> 24296 bytes bin/Debug/System.Runtime.Numerics.dll | Bin 0 -> 21200 bytes ...ystem.Runtime.Serialization.Formatters.dll | Bin 0 -> 21264 bytes .../System.Runtime.Serialization.Json.dll | Bin 0 -> 21240 bytes ...ystem.Runtime.Serialization.Primitives.dll | Bin 0 -> 27048 bytes .../System.Runtime.Serialization.Xml.dll | Bin 0 -> 24816 bytes bin/Debug/System.Runtime.dll | Bin 0 -> 29360 bytes bin/Debug/System.Security.Claims.dll | Bin 0 -> 21200 bytes ...ystem.Security.Cryptography.Algorithms.dll | Bin 0 -> 47016 bytes .../System.Security.Cryptography.Csp.dll | Bin 0 -> 21240 bytes .../System.Security.Cryptography.Encoding.dll | Bin 0 -> 21256 bytes ...ystem.Security.Cryptography.Primitives.dll | Bin 0 -> 21784 bytes ...Security.Cryptography.X509Certificates.dll | Bin 0 -> 22832 bytes bin/Debug/System.Security.Principal.dll | Bin 0 -> 21208 bytes bin/Debug/System.Security.SecureString.dll | Bin 0 -> 22392 bytes bin/Debug/System.Text.Encoding.CodePages.dll | Bin 0 -> 761488 bytes bin/Debug/System.Text.Encoding.Extensions.dll | Bin 0 -> 21232 bytes bin/Debug/System.Text.Encoding.dll | Bin 0 -> 21696 bytes bin/Debug/System.Text.Encodings.Web.dll | Bin 0 -> 57208 bytes bin/Debug/System.Text.Encodings.Web.xml | 932 + bin/Debug/System.Text.Json.dll | Bin 0 -> 293248 bytes bin/Debug/System.Text.Json.xml | 2346 ++ bin/Debug/System.Text.RegularExpressions.dll | Bin 0 -> 21232 bytes bin/Debug/System.Threading.Overlapped.dll | Bin 0 -> 37752 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes .../System.Threading.Tasks.Extensions.xml | 166 + bin/Debug/System.Threading.Tasks.Parallel.dll | Bin 0 -> 21232 bytes bin/Debug/System.Threading.Tasks.dll | Bin 0 -> 22224 bytes bin/Debug/System.Threading.Thread.dll | Bin 0 -> 21200 bytes bin/Debug/System.Threading.ThreadPool.dll | Bin 0 -> 21216 bytes bin/Debug/System.Threading.Timer.dll | Bin 0 -> 21200 bytes bin/Debug/System.Threading.dll | Bin 0 -> 22192 bytes bin/Debug/System.ValueTuple.dll | Bin 0 -> 24240 bytes bin/Debug/System.Xml.ReaderWriter.dll | Bin 0 -> 21712 bytes bin/Debug/System.Xml.XDocument.dll | Bin 0 -> 21696 bytes bin/Debug/System.Xml.XPath.XDocument.dll | Bin 0 -> 22904 bytes bin/Debug/System.Xml.XPath.dll | Bin 0 -> 21176 bytes bin/Debug/System.Xml.XmlDocument.dll | Bin 0 -> 21712 bytes bin/Debug/System.Xml.XmlSerializer.dll | Bin 0 -> 21712 bytes bin/Debug/YoutubeExplode.dll | Bin 0 -> 215040 bytes bin/Debug/YoutubeExplode.xml | 1702 ++ bin/Debug/netstandard.dll | Bin 0 -> 98616 bytes bin/Debug/youtube-downloader.exe | Bin 0 -> 63488 bytes bin/Debug/youtube-downloader.pdb | Bin 0 -> 21888 bytes bin/Release/TYTD.Api.dll | Bin 0 -> 48640 bytes bin/Release/youtube-downloader.exe | Bin 58368 -> 16896 bytes index.html | 1 + ...amework,Version=v4.7.AssemblyAttributes.cs | 0 .../youtube-downloader.csproj.CopyComplete | 0 ...-downloader.csproj.CoreCompileInputs.cache | 1 + ...ube-downloader.csproj.FileListAbsolute.txt | 139 + obj/x86/Debug/youtube-downloader.exe | Bin 0 -> 63488 bytes obj/x86/Debug/youtube-downloader.pdb | Bin 0 -> 21888 bytes ...-downloader.csproj.CoreCompileInputs.cache | 2 +- ...ube-downloader.csproj.FileListAbsolute.txt | 1 + ...e-downloader.csprojAssemblyReference.cache | Bin 90159 -> 30399 bytes obj/x86/Release/youtube-downloader.exe | Bin 58368 -> 16896 bytes .../.nupkg.metadata | 5 + .../.signature.p7s | Bin 0 -> 18704 bytes .../Icon.png | Bin 0 -> 1371 bytes .../LICENSE.TXT | 23 + .../Microsoft.Bcl.AsyncInterfaces.1.1.1.nupkg | Bin 0 -> 93574 bytes .../THIRD-PARTY-NOTICES.TXT | 375 + .../net461/Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes .../net461/Microsoft.Bcl.AsyncInterfaces.xml | 223 + .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20864 bytes .../Microsoft.Bcl.AsyncInterfaces.xml | 223 + .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 14720 bytes .../Microsoft.Bcl.AsyncInterfaces.xml | 8 + .../net461/Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 16760 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 17280 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 14712 bytes .../useSharedDesignerContext.txt | 0 .../version.txt | 1 + youtube-downloader.csproj | 17 +- youtube-downloader.sln | 10 + 338 files changed, 99212 insertions(+), 3753 deletions(-) delete mode 100644 Server/Models/YoutubeDownloaderRequest.cs delete mode 100644 Server/Models/YoutubeDownloaderResponse.cs delete mode 100644 Site/Site.csproj delete mode 100644 Site/YouTubeSite.cs delete mode 100644 Site/bin/Debug/Hyperlinq.dll delete mode 100644 Site/bin/Debug/Hyperlinq.xml delete mode 100644 Site/bin/Debug/Site.dll delete mode 100644 Site/bin/Release/Hyperlinq.dll delete mode 100644 Site/bin/Release/Hyperlinq.xml delete mode 100644 Site/bin/Release/Site.dll delete mode 100644 Site/obj/Debug/.NETFramework,Version=v4.7.AssemblyAttribute.cs delete mode 100644 Site/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs delete mode 100644 Site/obj/Debug/Site.csproj.AssemblyReference.cache delete mode 100644 Site/obj/Debug/Site.csproj.CoreCompileInputs.cache delete mode 100644 Site/obj/Debug/Site.csproj.FileListAbsolute.txt delete mode 100644 Site/obj/Debug/Site.csproj.FilesWrittenAbsolute.txt delete mode 100644 Site/obj/Debug/Site.csprojAssemblyReference.cache delete mode 100644 Site/obj/Debug/Site.dll delete mode 100644 Site/obj/Debug/Site.pdb delete mode 100644 Site/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs delete mode 100644 Site/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs delete mode 100644 Site/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 Site/obj/Release/Site.csproj.AssemblyReference.cache delete mode 100644 Site/obj/Release/Site.csproj.CoreCompileInputs.cache delete mode 100644 Site/obj/Release/Site.csproj.FileListAbsolute.txt delete mode 100644 Site/obj/Release/Site.dll delete mode 100644 Site/packages.config create mode 100644 TYTD.Api/MyClass.cs rename {Site => TYTD.Api}/Properties/AssemblyInfo.cs (96%) rename {Server => TYTD.Api/Server}/Functions/Downloader.cs (90%) rename {Server => TYTD.Api/Server}/Functions/ffmpeg.cs (98%) rename {Server => TYTD.Api/Server}/Models/InfoType.cs (91%) rename {Server => TYTD.Api/Server}/Models/InfomationQueueItem.cs (99%) rename {Server => TYTD.Api/Server}/Models/SavedChannel.cs (89%) rename {Server/Functions => TYTD.Api/Server/Models}/SavedMedia.cs (56%) rename {Server => TYTD.Api/Server}/Models/SavedPlaylist.cs (95%) rename {Server => TYTD.Api/Server}/Models/SavedVideo.cs (66%) rename {Server => TYTD.Api/Server}/Models/VideoDownloadProgress.cs (54%) create mode 100644 TYTD.Api/TYTD.Api.csproj rename Site/Site.csproj.user => TYTD.Api/TYTD.Api.csproj.user (100%) create mode 100644 TYTD.Api/bin/Release/AngleSharp.dll create mode 100644 TYTD.Api/bin/Release/AngleSharp.xml create mode 100755 TYTD.Api/bin/Release/AsyncEnumerable.dll create mode 100755 TYTD.Api/bin/Release/AsyncEnumerable.xml create mode 100755 TYTD.Api/bin/Release/CookiesTxtParser.dll create mode 100755 TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.xml create mode 100644 TYTD.Api/bin/Release/Microsoft.Win32.Primitives.dll create mode 100644 TYTD.Api/bin/Release/Newtonsoft.Json.dll create mode 100644 TYTD.Api/bin/Release/Newtonsoft.Json.xml create mode 100644 TYTD.Api/bin/Release/System.AppContext.dll create mode 100644 TYTD.Api/bin/Release/System.Buffers.dll create mode 100644 TYTD.Api/bin/Release/System.Buffers.xml create mode 100644 TYTD.Api/bin/Release/System.Collections.Concurrent.dll create mode 100644 TYTD.Api/bin/Release/System.Collections.NonGeneric.dll create mode 100644 TYTD.Api/bin/Release/System.Collections.Specialized.dll create mode 100644 TYTD.Api/bin/Release/System.Collections.dll create mode 100644 TYTD.Api/bin/Release/System.ComponentModel.EventBasedAsync.dll create mode 100644 TYTD.Api/bin/Release/System.ComponentModel.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.ComponentModel.TypeConverter.dll create mode 100644 TYTD.Api/bin/Release/System.ComponentModel.dll create mode 100644 TYTD.Api/bin/Release/System.Console.dll create mode 100644 TYTD.Api/bin/Release/System.Data.Common.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.Contracts.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.Debug.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.FileVersionInfo.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.Process.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.StackTrace.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.TextWriterTraceListener.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.Tools.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.TraceSource.dll create mode 100644 TYTD.Api/bin/Release/System.Diagnostics.Tracing.dll create mode 100644 TYTD.Api/bin/Release/System.Drawing.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.Dynamic.Runtime.dll create mode 100644 TYTD.Api/bin/Release/System.Globalization.Calendars.dll create mode 100644 TYTD.Api/bin/Release/System.Globalization.Extensions.dll create mode 100644 TYTD.Api/bin/Release/System.Globalization.dll create mode 100644 TYTD.Api/bin/Release/System.IO.Compression.ZipFile.dll create mode 100644 TYTD.Api/bin/Release/System.IO.Compression.dll create mode 100644 TYTD.Api/bin/Release/System.IO.FileSystem.DriveInfo.dll create mode 100644 TYTD.Api/bin/Release/System.IO.FileSystem.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.IO.FileSystem.Watcher.dll create mode 100644 TYTD.Api/bin/Release/System.IO.FileSystem.dll create mode 100644 TYTD.Api/bin/Release/System.IO.IsolatedStorage.dll create mode 100644 TYTD.Api/bin/Release/System.IO.MemoryMappedFiles.dll create mode 100644 TYTD.Api/bin/Release/System.IO.Pipes.dll create mode 100644 TYTD.Api/bin/Release/System.IO.UnmanagedMemoryStream.dll create mode 100644 TYTD.Api/bin/Release/System.IO.dll create mode 100644 TYTD.Api/bin/Release/System.Linq.Expressions.dll create mode 100644 TYTD.Api/bin/Release/System.Linq.Parallel.dll create mode 100644 TYTD.Api/bin/Release/System.Linq.Queryable.dll create mode 100644 TYTD.Api/bin/Release/System.Linq.dll create mode 100644 TYTD.Api/bin/Release/System.Memory.dll create mode 100644 TYTD.Api/bin/Release/System.Memory.xml create mode 100644 TYTD.Api/bin/Release/System.Net.Http.dll create mode 100644 TYTD.Api/bin/Release/System.Net.NameResolution.dll create mode 100644 TYTD.Api/bin/Release/System.Net.NetworkInformation.dll create mode 100644 TYTD.Api/bin/Release/System.Net.Ping.dll create mode 100644 TYTD.Api/bin/Release/System.Net.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.Net.Requests.dll create mode 100644 TYTD.Api/bin/Release/System.Net.Security.dll create mode 100644 TYTD.Api/bin/Release/System.Net.Sockets.dll create mode 100644 TYTD.Api/bin/Release/System.Net.WebHeaderCollection.dll create mode 100644 TYTD.Api/bin/Release/System.Net.WebSockets.Client.dll create mode 100644 TYTD.Api/bin/Release/System.Net.WebSockets.dll create mode 100644 TYTD.Api/bin/Release/System.Numerics.Vectors.dll create mode 100644 TYTD.Api/bin/Release/System.Numerics.Vectors.xml create mode 100644 TYTD.Api/bin/Release/System.ObjectModel.dll create mode 100644 TYTD.Api/bin/Release/System.Reflection.Extensions.dll create mode 100644 TYTD.Api/bin/Release/System.Reflection.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.Reflection.dll create mode 100644 TYTD.Api/bin/Release/System.Resources.Reader.dll create mode 100644 TYTD.Api/bin/Release/System.Resources.ResourceManager.dll create mode 100644 TYTD.Api/bin/Release/System.Resources.Writer.dll create mode 100755 TYTD.Api/bin/Release/System.Runtime.CompilerServices.Unsafe.dll create mode 100755 TYTD.Api/bin/Release/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 TYTD.Api/bin/Release/System.Runtime.CompilerServices.VisualC.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Extensions.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Handles.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.InteropServices.RuntimeInformation.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.InteropServices.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Numerics.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Serialization.Formatters.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Serialization.Json.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Serialization.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.Serialization.Xml.dll create mode 100644 TYTD.Api/bin/Release/System.Runtime.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Claims.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Cryptography.Algorithms.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Cryptography.Csp.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Cryptography.Encoding.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Cryptography.Primitives.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Cryptography.X509Certificates.dll create mode 100644 TYTD.Api/bin/Release/System.Security.Principal.dll create mode 100644 TYTD.Api/bin/Release/System.Security.SecureString.dll create mode 100644 TYTD.Api/bin/Release/System.Text.Encoding.CodePages.dll create mode 100644 TYTD.Api/bin/Release/System.Text.Encoding.Extensions.dll create mode 100644 TYTD.Api/bin/Release/System.Text.Encoding.dll create mode 100755 TYTD.Api/bin/Release/System.Text.Encodings.Web.dll create mode 100755 TYTD.Api/bin/Release/System.Text.Encodings.Web.xml create mode 100755 TYTD.Api/bin/Release/System.Text.Json.dll create mode 100755 TYTD.Api/bin/Release/System.Text.Json.xml create mode 100644 TYTD.Api/bin/Release/System.Text.RegularExpressions.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Overlapped.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Tasks.Extensions.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Tasks.Extensions.xml create mode 100644 TYTD.Api/bin/Release/System.Threading.Tasks.Parallel.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Tasks.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Thread.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.ThreadPool.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.Timer.dll create mode 100644 TYTD.Api/bin/Release/System.Threading.dll create mode 100644 TYTD.Api/bin/Release/System.ValueTuple.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.ReaderWriter.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.XDocument.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.XPath.XDocument.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.XPath.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.XmlDocument.dll create mode 100644 TYTD.Api/bin/Release/System.Xml.XmlSerializer.dll create mode 100644 TYTD.Api/bin/Release/TYTD.Api.dll create mode 100644 TYTD.Api/bin/Release/YoutubeExplode.dll create mode 100644 TYTD.Api/bin/Release/YoutubeExplode.xml create mode 100644 TYTD.Api/bin/Release/netstandard.dll rename {Site/obj/Debug => TYTD.Api/obj/Release}/.NETFramework,Version=v4.7.AssemblyAttributes.cs (100%) rename Site/obj/Debug/Site.csproj.CopyComplete => TYTD.Api/obj/Release/TYTD.Api.csproj.CopyComplete (100%) create mode 100644 TYTD.Api/obj/Release/TYTD.Api.csproj.CoreCompileInputs.cache create mode 100644 TYTD.Api/obj/Release/TYTD.Api.csproj.FileListAbsolute.txt create mode 100644 TYTD.Api/obj/Release/TYTD.Api.csprojAssemblyReference.cache create mode 100644 TYTD.Api/obj/Release/TYTD.Api.dll create mode 100644 TYTD.Api/packages.config create mode 100644 bin/Debug/AngleSharp.dll create mode 100644 bin/Debug/AngleSharp.xml create mode 100755 bin/Debug/AsyncEnumerable.dll create mode 100755 bin/Debug/AsyncEnumerable.xml create mode 100755 bin/Debug/Common.Logging.Core.dll rename Site/bin/Debug/Site.pdb => bin/Debug/Common.Logging.Core.pdb (52%) mode change 100644 => 100755 create mode 100755 bin/Debug/Common.Logging.dll create mode 100755 bin/Debug/Common.Logging.pdb create mode 100755 bin/Debug/Common.Logging.xml create mode 100755 bin/Debug/CookiesTxtParser.dll create mode 100755 bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml create mode 100644 bin/Debug/Microsoft.Win32.Primitives.dll create mode 100644 bin/Debug/MimeTypesMap.dll create mode 100644 bin/Debug/Newtonsoft.Json.dll create mode 100644 bin/Debug/Newtonsoft.Json.xml create mode 100755 bin/Debug/SimpleBase.dll create mode 100755 bin/Debug/SimpleBase.pdb create mode 100644 bin/Debug/SimpleHTTP.dll create mode 100644 bin/Debug/SimpleHTTP.xml create mode 100644 bin/Debug/System.AppContext.dll create mode 100644 bin/Debug/System.Buffers.dll create mode 100644 bin/Debug/System.Buffers.xml create mode 100644 bin/Debug/System.Collections.Concurrent.dll create mode 100644 bin/Debug/System.Collections.NonGeneric.dll create mode 100644 bin/Debug/System.Collections.Specialized.dll create mode 100644 bin/Debug/System.Collections.dll create mode 100644 bin/Debug/System.ComponentModel.EventBasedAsync.dll create mode 100644 bin/Debug/System.ComponentModel.Primitives.dll create mode 100644 bin/Debug/System.ComponentModel.TypeConverter.dll create mode 100644 bin/Debug/System.ComponentModel.dll create mode 100644 bin/Debug/System.Console.dll create mode 100644 bin/Debug/System.Data.Common.dll create mode 100644 bin/Debug/System.Diagnostics.Contracts.dll create mode 100644 bin/Debug/System.Diagnostics.Debug.dll create mode 100644 bin/Debug/System.Diagnostics.FileVersionInfo.dll create mode 100644 bin/Debug/System.Diagnostics.Process.dll create mode 100644 bin/Debug/System.Diagnostics.StackTrace.dll create mode 100644 bin/Debug/System.Diagnostics.TextWriterTraceListener.dll create mode 100644 bin/Debug/System.Diagnostics.Tools.dll create mode 100644 bin/Debug/System.Diagnostics.TraceSource.dll create mode 100644 bin/Debug/System.Diagnostics.Tracing.dll create mode 100644 bin/Debug/System.Drawing.Primitives.dll create mode 100644 bin/Debug/System.Dynamic.Runtime.dll create mode 100644 bin/Debug/System.Globalization.Calendars.dll create mode 100644 bin/Debug/System.Globalization.Extensions.dll create mode 100644 bin/Debug/System.Globalization.dll create mode 100644 bin/Debug/System.IO.Compression.ZipFile.dll create mode 100644 bin/Debug/System.IO.Compression.dll create mode 100644 bin/Debug/System.IO.FileSystem.DriveInfo.dll create mode 100644 bin/Debug/System.IO.FileSystem.Primitives.dll create mode 100644 bin/Debug/System.IO.FileSystem.Watcher.dll create mode 100644 bin/Debug/System.IO.FileSystem.dll create mode 100644 bin/Debug/System.IO.IsolatedStorage.dll create mode 100644 bin/Debug/System.IO.MemoryMappedFiles.dll create mode 100644 bin/Debug/System.IO.Pipes.dll create mode 100644 bin/Debug/System.IO.UnmanagedMemoryStream.dll create mode 100644 bin/Debug/System.IO.dll create mode 100644 bin/Debug/System.Linq.Expressions.dll create mode 100644 bin/Debug/System.Linq.Parallel.dll create mode 100644 bin/Debug/System.Linq.Queryable.dll create mode 100644 bin/Debug/System.Linq.dll create mode 100644 bin/Debug/System.Memory.dll create mode 100644 bin/Debug/System.Memory.xml create mode 100644 bin/Debug/System.Net.Http.dll create mode 100644 bin/Debug/System.Net.NameResolution.dll create mode 100644 bin/Debug/System.Net.NetworkInformation.dll create mode 100644 bin/Debug/System.Net.Ping.dll create mode 100644 bin/Debug/System.Net.Primitives.dll create mode 100644 bin/Debug/System.Net.Requests.dll create mode 100644 bin/Debug/System.Net.Security.dll create mode 100644 bin/Debug/System.Net.Sockets.dll create mode 100644 bin/Debug/System.Net.WebHeaderCollection.dll create mode 100644 bin/Debug/System.Net.WebSockets.Client.dll create mode 100644 bin/Debug/System.Net.WebSockets.dll create mode 100644 bin/Debug/System.Numerics.Vectors.dll create mode 100644 bin/Debug/System.Numerics.Vectors.xml create mode 100644 bin/Debug/System.ObjectModel.dll create mode 100644 bin/Debug/System.Reflection.Extensions.dll create mode 100644 bin/Debug/System.Reflection.Primitives.dll create mode 100644 bin/Debug/System.Reflection.dll create mode 100644 bin/Debug/System.Resources.Reader.dll create mode 100644 bin/Debug/System.Resources.ResourceManager.dll create mode 100644 bin/Debug/System.Resources.Writer.dll create mode 100755 bin/Debug/System.Runtime.CompilerServices.Unsafe.dll create mode 100755 bin/Debug/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 bin/Debug/System.Runtime.CompilerServices.VisualC.dll create mode 100644 bin/Debug/System.Runtime.Extensions.dll create mode 100644 bin/Debug/System.Runtime.Handles.dll create mode 100644 bin/Debug/System.Runtime.InteropServices.RuntimeInformation.dll create mode 100644 bin/Debug/System.Runtime.InteropServices.dll create mode 100644 bin/Debug/System.Runtime.Numerics.dll create mode 100644 bin/Debug/System.Runtime.Serialization.Formatters.dll create mode 100644 bin/Debug/System.Runtime.Serialization.Json.dll create mode 100644 bin/Debug/System.Runtime.Serialization.Primitives.dll create mode 100644 bin/Debug/System.Runtime.Serialization.Xml.dll create mode 100644 bin/Debug/System.Runtime.dll create mode 100644 bin/Debug/System.Security.Claims.dll create mode 100644 bin/Debug/System.Security.Cryptography.Algorithms.dll create mode 100644 bin/Debug/System.Security.Cryptography.Csp.dll create mode 100644 bin/Debug/System.Security.Cryptography.Encoding.dll create mode 100644 bin/Debug/System.Security.Cryptography.Primitives.dll create mode 100644 bin/Debug/System.Security.Cryptography.X509Certificates.dll create mode 100644 bin/Debug/System.Security.Principal.dll create mode 100644 bin/Debug/System.Security.SecureString.dll create mode 100644 bin/Debug/System.Text.Encoding.CodePages.dll create mode 100644 bin/Debug/System.Text.Encoding.Extensions.dll create mode 100644 bin/Debug/System.Text.Encoding.dll create mode 100755 bin/Debug/System.Text.Encodings.Web.dll create mode 100755 bin/Debug/System.Text.Encodings.Web.xml create mode 100755 bin/Debug/System.Text.Json.dll create mode 100755 bin/Debug/System.Text.Json.xml create mode 100644 bin/Debug/System.Text.RegularExpressions.dll create mode 100644 bin/Debug/System.Threading.Overlapped.dll create mode 100644 bin/Debug/System.Threading.Tasks.Extensions.dll create mode 100644 bin/Debug/System.Threading.Tasks.Extensions.xml create mode 100644 bin/Debug/System.Threading.Tasks.Parallel.dll create mode 100644 bin/Debug/System.Threading.Tasks.dll create mode 100644 bin/Debug/System.Threading.Thread.dll create mode 100644 bin/Debug/System.Threading.ThreadPool.dll create mode 100644 bin/Debug/System.Threading.Timer.dll create mode 100644 bin/Debug/System.Threading.dll create mode 100644 bin/Debug/System.ValueTuple.dll create mode 100644 bin/Debug/System.Xml.ReaderWriter.dll create mode 100644 bin/Debug/System.Xml.XDocument.dll create mode 100644 bin/Debug/System.Xml.XPath.XDocument.dll create mode 100644 bin/Debug/System.Xml.XPath.dll create mode 100644 bin/Debug/System.Xml.XmlDocument.dll create mode 100644 bin/Debug/System.Xml.XmlSerializer.dll create mode 100644 bin/Debug/YoutubeExplode.dll create mode 100644 bin/Debug/YoutubeExplode.xml create mode 100644 bin/Debug/netstandard.dll create mode 100644 bin/Debug/youtube-downloader.exe create mode 100644 bin/Debug/youtube-downloader.pdb create mode 100644 bin/Release/TYTD.Api.dll create mode 100644 index.html rename {Site/obj/Release => obj/x86/Debug}/.NETFramework,Version=v4.7.AssemblyAttributes.cs (100%) rename Site/obj/Release/Site.csproj.CopyComplete => obj/x86/Debug/youtube-downloader.csproj.CopyComplete (100%) create mode 100644 obj/x86/Debug/youtube-downloader.csproj.CoreCompileInputs.cache create mode 100644 obj/x86/Debug/youtube-downloader.csproj.FileListAbsolute.txt create mode 100644 obj/x86/Debug/youtube-downloader.exe create mode 100644 obj/x86/Debug/youtube-downloader.pdb create mode 100644 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/.nupkg.metadata create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/.signature.p7s create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/Icon.png create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/LICENSE.TXT create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/Microsoft.Bcl.AsyncInterfaces.1.1.1.nupkg create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/THIRD-PARTY-NOTICES.TXT create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/net461/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/net461/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/ref/net461/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/useSharedDesignerContext.txt create mode 100755 packages/Microsoft.Bcl.AsyncInterfaces.1.1.1/version.txt diff --git a/.vs/youtube-downloader/xs/UserPrefs.xml b/.vs/youtube-downloader/xs/UserPrefs.xml index a27044e..57e9374 100644 --- a/.vs/youtube-downloader/xs/UserPrefs.xml +++ b/.vs/youtube-downloader/xs/UserPrefs.xml @@ -1,32 +1,44 @@  - + - - - - - - - - + + + + + + + + + + + - - + + + + + + + + + - + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs index 75bb9c5..19812e6 100644 --- a/Program.cs +++ b/Program.cs @@ -8,50 +8,15 @@ using System.Reflection; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading; -using TessesYoutubeDownloader.Server.Models; +using TYTD.Server.Models; using Newtonsoft.Json; using System.Net; using System.Threading.Tasks; -using youtube_downloader.Server.Models; +using TYTD.Server.Functions; -namespace youtube_downloader +namespace TYTD { - public class SSE - { - public static SSE ServerSentEventItem = new SSE(); - List Streams = new List(); - public void RegisterResponse(HttpListenerResponse rp) - { - Streams.Add(rp); - } - public async Task PushEventAsync(string event_name,object data) - { - await PushEventAsync(event_name, JsonConvert.SerializeObject(data)); - } - public async Task PushEventAsync(string event_name,string data) - { - await PushEventRawAsync($"event: {event_name}\ndata: {data}"); - - } - public async Task PushEventRawAsync(string raw_data) - { - foreach (var items in Streams) - { - try - { - Console.WriteLine($"Event Sent: {raw_data}"); - var bytes = Encoding.UTF8.GetBytes(raw_data + "\n\n"); - await items.OutputStream.WriteAsync(bytes, 0, bytes.Length); - await items.OutputStream.FlushAsync(); - } - catch (Exception ex) - { - _ = ex; - } - } - } - } class Program { @@ -60,18 +25,20 @@ namespace youtube_downloader { Thread t = new Thread(new ThreadStart(() => { - Server.Functions.Downloader.DL.DownloadThread().GetAwaiter().GetResult(); + Downloader.DL.DownloadThread().GetAwaiter().GetResult(); })); t.Start(); Thread t2 = new Thread(new ThreadStart(() => { - Server.Functions.Downloader.DL.ListenForQueueItem().GetAwaiter().GetResult(); + Downloader.DL.ListenForQueueItem().GetAwaiter().GetResult(); })); + + t2.Start(); // we need to get our app name so that // we can create unique names for our mutex and our pipe - webSitePath = Server.Functions.Downloader.DL.GetPath(true, "WebSite"); + webSitePath = Downloader.DL.GetPath(true, "WebSite"); Route.Before += Route_Before; @@ -115,7 +82,8 @@ namespace youtube_downloader Route.Add("/api/QueueMove/{From}/{To}", (HttpAction)QueueMove); Route.Add("/api/QueueMove2/{To}/{Id}", (HttpAction)QueueMove2); Route.Add("/api/Progress", (HttpAction)VideoProgress); - Route.Add("/api/SSE", (HttpAction)ServerSentEvents); + Route.Add("/api/Redo", (HttpAction)Redo); + Route.Add("/api/Cancel", (HttpAction)Cancel); /* Storage */ Route.Add("/api/Storage/GetDirectories/{Path}", (HttpAction)StorageGetDirectories); @@ -130,7 +98,10 @@ namespace youtube_downloader /* Other */ Route.Add("/", (HttpAction)Index); - Route.Add("/{Path}", (HttpAction)RootPath); + Route.Add("/{Path}", (HttpAction)RootPath); + Console.CancelKeyPress += (sender, e) => { ApiLoader.Dispose();var date = DateTime.Now.ToString("yyyyMMdd_HHmmss");File.WriteAllText(Path.Combine("config","queues-close",$"{date}.json"), Downloader.GetQueue()); return; }; + ApiLoader.Init(); + Console.WriteLine("Almost Ready To Listen"); if (arg.Length > 0) @@ -155,7 +126,7 @@ namespace youtube_downloader using (var req = new StreamReader(file.Value)) { List tripletlst = JsonConvert.DeserializeObject>(req.ReadToEnd()); - Server.Functions.Downloader.DownloadItems(tripletlst); + Downloader.DownloadItems(tripletlst); response.Redirect("/"); } } @@ -164,59 +135,59 @@ namespace youtube_downloader } public static void AddItem(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadItem(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadItem(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddItemRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadItem(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); + Downloader.DownloadItem(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); rp.AsRedirect("/"); } public static void AddFile(HttpListenerRequest request, HttpListenerResponse response, Dictionary arguments) { - Server.Functions.Downloader.DownloadFile(arguments["Url"]); + Downloader.DownloadFile(arguments["Url"]); } public static void AddCaptions(HttpListenerRequest request, HttpListenerResponse response, Dictionary arguments) { - Server.Functions.Downloader.DownloadCaptions(arguments["Id"]); + Downloader.DownloadCaptions(arguments["Id"]); } #endregion #region Video public static void AddVideoInfo(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadVideoInfo(System.Web.HttpUtility.UrlDecode(args["Id"]), Resolution.NoConvert); + Downloader.DownloadVideoInfo(System.Web.HttpUtility.UrlDecode(args["Id"]), Resolution.NoConvert); rp.AsRedirect("/"); } public static void AddVideo(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadVideo(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadVideo(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddVideoRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadVideo(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); + Downloader.DownloadVideo(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); rp.AsRedirect("/"); } public static void Redownload(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - foreach (var item in Directory.GetFiles(Server.Functions.Downloader.DL.GetPath(true, "Info"), "*.json")) + foreach (var item in Directory.GetFiles(Downloader.DL.GetPath(true, "Info"), "*.json")) { string id = System.IO.Path.GetFileNameWithoutExtension(item); - Server.Functions.Downloader.DownloadVideo(id, Resolution.NoConvert); + Downloader.DownloadVideo(id, Resolution.NoConvert); } rp.AsRedirect("/"); } public static void RedownloadRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - foreach (var item in Directory.GetFiles(Server.Functions.Downloader.DL.GetPath(true, "Info"), "*.json")) + foreach (var item in Directory.GetFiles(Downloader.DL.GetPath(true, "Info"), "*.json")) { string id = System.IO.Path.GetFileNameWithoutExtension(item); - Server.Functions.Downloader.DownloadVideo(id, (Resolution)int.Parse(args["R"])); + Downloader.DownloadVideo(id, (Resolution)int.Parse(args["R"])); } rp.AsRedirect("/"); } @@ -229,18 +200,18 @@ namespace youtube_downloader #region Playlist public static void AddPlaylistOnly(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadPlaylistOnly(System.Web.HttpUtility.UrlDecode(args["Id"]), Resolution.NoConvert); + Downloader.DownloadPlaylistOnly(System.Web.HttpUtility.UrlDecode(args["Id"]), Resolution.NoConvert); rp.AsRedirect("/"); } public static void AddPlaylist(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadPlaylist(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadPlaylist(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddPlaylistRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadPlaylist(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); + Downloader.DownloadPlaylist(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); rp.AsRedirect("/"); } #endregion @@ -248,14 +219,14 @@ namespace youtube_downloader public static void SearchOnly(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { string search = System.Web.HttpUtility.UrlDecode(args["text"]); - string json = JsonConvert.SerializeObject(Server.Functions.Downloader.Search(search, false)); + string json = JsonConvert.SerializeObject(Downloader.Search(search, false)); rp.AsText(json, "application/json"); } public static void Search(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { string search = System.Web.HttpUtility.UrlDecode(args["text"]); - string json = JsonConvert.SerializeObject(Server.Functions.Downloader.Search(search)); + string json = JsonConvert.SerializeObject(Downloader.Search(search)); rp.AsText(json, "application/json"); } @@ -263,80 +234,78 @@ namespace youtube_downloader #region Channel public static void AddChannelOnly(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadChannelOnly(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadChannelOnly(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddChannel(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadChannel(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadChannel(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddChannelRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadChannel(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); + Downloader.DownloadChannel(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); rp.AsRedirect("/"); } #endregion #region User public static void AddUserOnly(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadUserOnly(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadUserOnly(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddUser(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadUser(System.Web.HttpUtility.UrlDecode(args["Id"])); + Downloader.DownloadUser(System.Web.HttpUtility.UrlDecode(args["Id"])); rp.AsRedirect("/"); } public static void AddUserRes(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.DownloadUser(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); + Downloader.DownloadUser(System.Web.HttpUtility.UrlDecode(args["Id"]), (Resolution)int.Parse(args["R"])); rp.AsRedirect("/"); } #endregion #region Queue And Progress public static void QueueList(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string json = Server.Functions.Downloader.GetQueue(); + string json = Downloader.GetQueue(); rp.AsText(json, "application/json"); } public static void QueueMove(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - Server.Functions.Downloader.ModQueue(args["To"], args["From"]); + Downloader.ModQueue(args["To"], args["From"]); rp.AsRedirect("/"); } public static void QueueMove2(HttpListenerRequest request, HttpListenerResponse response, Dictionary arguments) { - Server.Functions.Downloader.ModQueue2(arguments["To"], arguments["Id"]); + Downloader.ModQueue2(arguments["To"], arguments["Id"]); response.AsRedirect("/"); } public static void VideoProgress(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string json = JsonConvert.SerializeObject(Server.Functions.Downloader.GetProgress()); + string json = JsonConvert.SerializeObject(Downloader.GetProgress()); rp.AsText(json, "application/json"); } - public static void ServerSentEvents(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) + public static void Redo(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - rp.AddHeader("Cache-Control", "no-cache"); - rp.ContentType = "text/event-stream"; - rp.WithCode(); - Console.WriteLine(rp.SendChunked); - rp.SendChunked = false; - rp.ContentEncoding = Encoding.UTF8; - - SSE.ServerSentEventItem.RegisterResponse(rp); - + Downloader.RedownloadIt = true; + Downloader.DownloadIt = false; + } + public static void Cancel(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) + { + Downloader.RedownloadIt = false; + Downloader.DownloadIt = false; } #endregion #region Storage public static void StorageGetDirectories(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string path = Server.Functions.Downloader.DL.GetPath(true, args["Path"]); + string path = Downloader.DL.GetPath(true, args["Path"]); if (Directory.Exists(path)) { @@ -350,7 +319,7 @@ namespace youtube_downloader } public static void StorageGetFiles(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string path = Server.Functions.Downloader.DL.GetPath(true, args["Path"]); + string path = Downloader.DL.GetPath(true, args["Path"]); if (Directory.Exists(path)) { @@ -364,14 +333,14 @@ namespace youtube_downloader } public static void StorageDirectoryExists(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string path = Server.Functions.Downloader.DL.GetPath(true, args["Path"]); + string path = Downloader.DL.GetPath(true, args["Path"]); string json = Directory.Exists(path) ? "true" : "false"; rp.AsText(json, "text/plain"); } public static void StorageFileExists(HttpListenerRequest rq, HttpListenerResponse rp, Dictionary args) { - string path = Server.Functions.Downloader.DL.GetPath(true, args["Path"]); + string path = Downloader.DL.GetPath(true, args["Path"]); string json = File.Exists(path) ? "true" : "false"; rp.AsText(json, "text/plain"); @@ -384,7 +353,7 @@ namespace youtube_downloader } else { - string path = Server.Functions.Downloader.DL.GetPath(true, args["Path"]); + string path = Downloader.DL.GetPath(true, args["Path"]); rp.AsFile(rq, path); } @@ -394,7 +363,7 @@ namespace youtube_downloader YoutubeExplode.Videos.VideoId? vid = YoutubeExplode.Videos.VideoId.TryParse(args["Id"]); if (vid.HasValue) { - string path = Server.Functions.Downloader.DL.GetPath(true, "NotConverted",vid.Value +".mp4"); + string path = Downloader.DL.GetPath(true, "NotConverted",vid.Value +".mp4"); rp.AddHeader("Content-Disposition", GetVideoContentDisposition(vid.Value).ToString()); rp.AsFile(rq, path); } @@ -420,7 +389,7 @@ namespace youtube_downloader else { string[] m = new string[] { "Converted", "NotConverted", "Audio" }; - string path = Server.Functions.Downloader.DL.GetPath(true, m[res], vid.Value + ".mp4"); + string path = Downloader.DL.GetPath(true, m[res], vid.Value + ".mp4"); rp.AddHeader("Content-Disposition", GetVideoContentDisposition(vid.Value).ToString()); rp.AsFile(rq, path); } @@ -450,7 +419,7 @@ namespace youtube_downloader public static string GetVideoName(string id) { string name = id + ".mp4"; - string path = Server.Functions.Downloader.DL.GetPath(true, "Info", id + ".json"); + string path = Downloader.DL.GetPath(true, "Info", id + ".json"); if (File.Exists(path)) { string info=File.ReadAllText(path); diff --git a/Server/Models/YoutubeDownloaderRequest.cs b/Server/Models/YoutubeDownloaderRequest.cs deleted file mode 100644 index 356c37d..0000000 --- a/Server/Models/YoutubeDownloaderRequest.cs +++ /dev/null @@ -1,42 +0,0 @@ -/*using System; -namespace youtubedownloader.Server.Models -{ - public enum YoutubeDownloaderRequestEntryType - { - VideoDownload=0, - PlaylistDownload=1, - ChannelDownload=2, - UserDownload=3, - GetProgress=4, - GetQueue=5, - - } - - public class InternalYTDLReqE - { - - public YoutubeDownloaderRequest() - { - - } - public IYoutubeDownloaderRequestEntry GetRequestEntry() - { - - } - public void SetRequestEntry(IYoutubeDownloaderRequestEntry re) - { - - } - public string Data { get; set; } - public YoutubeDownloaderRequestEntryType Type { get; set; } - } - public interface IYoutubeDownloaderRequestEntry - { - - } - public class VideoDownload : IYoutubeDownloaderRequestEntry - { - public string Id { get; set; } - } -} -*/ \ No newline at end of file diff --git a/Server/Models/YoutubeDownloaderResponse.cs b/Server/Models/YoutubeDownloaderResponse.cs deleted file mode 100644 index 07ad02c..0000000 --- a/Server/Models/YoutubeDownloaderResponse.cs +++ /dev/null @@ -1,11 +0,0 @@ -/*using System; -namespace youtubedownloader.Server.Models -{ - public class YoutubeDownloaderResponse - { - public YoutubeDownloaderResponse() - { - } - } -} -*/ \ No newline at end of file diff --git a/Site/Site.csproj b/Site/Site.csproj deleted file mode 100644 index 0edc560..0000000 --- a/Site/Site.csproj +++ /dev/null @@ -1,44 +0,0 @@ - - - - Debug - AnyCPU - {17BEC4FA-5FB8-4BCE-8FAF-CCD7A4B317DE} - Library - Site - Site - v4.8 - - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - - - true - bin\Release - prompt - 4 - false - - - - - ..\packages\Hyperlinq.1.0.7\lib\net40-client\Hyperlinq.dll - - - - - - - - - - - \ No newline at end of file diff --git a/Site/YouTubeSite.cs b/Site/YouTubeSite.cs deleted file mode 100644 index 51799fb..0000000 --- a/Site/YouTubeSite.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using Hyperlinq; -namespace Site -{ - public class YouTubeSite - { - public YouTubeSite() - { - - } - public HElement[] GetBootStrap() - { - return new HElement[] { - H.link(e=> e.href("https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css").rel("stylesheet").Custom("integrity","sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC").Custom("crossorigin","anonymous")), - H.script(e=> e.src("https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js").Custom("integrity","sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM").Custom("crossorigin","anonymous")) - - }; - } - public void RegisterPages(List pages) - { - pages.Add("/"); - pages.Add("/index.html"); - } - public object[] GetPage2(string page,Dictionary args,string con_type) - { - string con_type0 = con_type; - - return new object[] { GetPage(page, args, ref con_type0), con_type }; - } - public MyResponse GetPage(string page,Dictionary args,ref string content_type) - { - if(page == "/" || page == "/index.html") - { - return - H.html( - H.head( - H.title("Tesses YouTube Downloader") - ), - H.body( - H.h1("Demi Lovato is an awesome boy") - ) - ); - } - return MyResponse.Empty; - } - } - - public class MyResponse - { - public bool IsEmpty = false; - public byte[] Data; - public static MyResponse Empty { get { return new MyResponse() { IsEmpty = true }; } } - public static implicit operator MyResponse(Stream strm) - { - MemoryStream strm2=new MemoryStream(); - strm.CopyTo(strm2); - strm.Dispose(); - return strm2.ToArray(); - } - public static implicit operator MyResponse(string str) - { - return System.Text.Encoding.UTF8.GetBytes(str); - } - public static implicit operator MyResponse(HElement elmt) - { - return elmt.ToString(); - } - public static implicit operator MyResponse(byte[] data) - { - return new MyResponse() { Data = data }; - } - public static implicit operator byte[](MyResponse resp) - { - return resp.Data; - } - } -} diff --git a/Site/bin/Debug/Hyperlinq.dll b/Site/bin/Debug/Hyperlinq.dll deleted file mode 100644 index d7f0352c0a932e082aba96f9e258375bc73922f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71168 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 - - - Hyperlinq - - - - - Merges two attribute chains with css-awareness. Unlike Join, which merely concatenate two chains, - Merge merges multiple css attributes into a single css attribute. - - - - - Defines a hyperlink. - - - - - Defines a hyperlink. - - - - - Defines an abbreviation. - - - - - Defines an abbreviation. - - - - - Not supported in HTML5. Defines an acronym. - - - - - Not supported in HTML5. Defines an acronym. - - - - - Defines contact information for the author/owner of a document. - - - - - Defines contact information for the author/owner of a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines an embedded applet. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines an embedded applet. - - - - - Defines an area inside an image-map. - - - - - Defines an area inside an image-map. - - - - - Defines an article. - - - - - Defines an article. - - - - - Defines content aside from the page content. - - - - - Defines content aside from the page content. - - - - - Defines sound content. - - - - - Defines sound content. - - - - - Defines bold text. - - - - - Defines bold text. - - - - - Specifies the base URL/target for all relative URLs in a document. - - - - - Specifies the base URL/target for all relative URLs in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Specifies a default colour, size, and font for all text in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Specifies a default colour, size, and font for all text in a document. - - - - - Isolates a part of text that might be formatted in a different direction from other text outside it. - - - - - Isolates a part of text that might be formatted in a different direction from other text outside it. - - - - - Overrides the current text direction. - - - - - Overrides the current text direction. - - - - - Not supported in HTML5. Defines big text. - - - - - Not supported in HTML5. Defines big text. - - - - - Defines a section that is quoted from another source. - - - - - Defines a section that is quoted from another source. - - - - - Defines the document's body. - - - - - Defines the document's body. - - - - - Defines a single line break. - - - - - Defines a single line break. - - - - - Defines a generic form button which can contain a range of other elements to create complex buttons. - - - - - Defines a generic form button which can contain a range of other elements to create complex buttons. - - - - - Used to draw graphics, on the fly, via scripting (usually JavaScript). - - - - - Used to draw graphics, on the fly, via scripting (usually JavaScript). - - - - - Defines a table caption. - - - - - Defines a table caption. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines centred text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines centred text. - - - - - Defines the title of a work. - - - - - Defines the title of a work. - - - - - Defines a piece of computer code. - - - - - Defines a piece of computer code. - - - - - - - Specifies a group of one or more columns in a table for formatting. - - - - - Specifies a group of one or more columns in a table for formatting. - - - - - Defines a command button that a user can invoke. - - - - - Defines a command button that a user can invoke. - - - - - Specifies a list of pre-defined options for input controls. - - - - - Specifies a list of pre-defined options for input controls. - - - - - Defines a description of an item in a definition list. - - - - - Defines a description of an item in a definition list. - - - - - Defines text that has been deleted from a document. - - - - - Defines text that has been deleted from a document. - - - - - Defines additional details that the user can view or hide. - - - - - Defines additional details that the user can view or hide. - - - - - Defines a definition term. - - - - - Defines a definition term. - - - - - Defines a dialog box or window. - - - - - Defines a dialog box or window. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines a directory list. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines a directory list. - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Defines a definition list. - - - - - Defines a definition list. - - - - - Defines a term (an item) in a definition list. - - - - - Defines a term (an item) in a definition list. - - - - - Defines emphasized text . - - - - - Defines emphasized text . - - - - - Defines a container for an external (non-HTML) application. - - - - - Defines a container for an external (non-HTML) application. - - - - - Groups related elements in a form. - - - - - Groups related elements in a form. - - - - - - - Specifies self-contained content. - - - - - Specifies self-contained content. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines font, colour, and size for text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines font, colour, and size for text. - - - - - Defines a footer for a document or section. - - - - - Defines a footer for a document or section. - - - - - Defines an HTML form for user input. - - - - - Defines an HTML form for user input. - - - - - Not supported in HTML5. Defines a window (a frame) in a frameset. - - - - - Not supported in HTML5. Defines a window (a frame) in a frameset. - - - - - Not supported in HTML5. Defines a set of frames. - - - - - Not supported in HTML5. Defines a set of frames. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines information about the document. - - - - - Defines information about the document. - - - - - Defines a header for a document or section. - - - - - Defines a header for a document or section. - - - - - - - Defines a thematic change in the content. - - - - - Defines a thematic change in the content. - - - - - Defines the root of an HTML document. - - - - - Defines the root of an HTML document. - - - - - Defines a part of text in an alternate voice or mood. - - - - - Defines a part of text in an alternate voice or mood. - - - - - Defines an inline frame. - - - - - Defines an inline frame. - - - - - Defines an image. - - - - - Defines an image. - - - - - Defines an input control. - - - - - Defines an input control. - - - - - Defines a text that has been inserted into a document. - - - - - Defines a text that has been inserted into a document. - - - - - Defines keyboard input. - - - - - Defines keyboard input. - - - - - Defines a key-pair generator field (for forms). - - - - - Defines a key-pair generator field (for forms). - - - - - - - - - Defines a list item. - - - - - Defines a list item. - - - - - Defines the relationship between a document and an external resource (most used to link to style sheets). - - - - - Defines the relationship between a document and an external resource (most used to link to style sheets). - - - - - Defines a client-side image-map. - - - - - Defines a client-side image-map. - - - - - Defines marked/highlighted text. - - - - - Defines marked/highlighted text. - - - - - Defines a list/menu of commands. - - - - - Defines a list/menu of commands. - - - - - Defines metadata about an HTML document. - - - - - Defines metadata about an HTML document. - - - - - Defines a scalar measurement within a known range (a gauge). - - - - - Defines a scalar measurement within a known range (a gauge). - - - - - Defines navigation links. - - - - - Defines navigation links. - - - - - Not supported in HTML5. Defines an alternate content for users that do not support frames. - - - - - Not supported in HTML5. Defines an alternate content for users that do not support frames. - - - - - Defines an alternate content for users that do not support client-side scripts. - - - - - Defines an alternate content for users that do not support client-side scripts. - - - - - Defines an embedded object. - - - - - Defines an embedded object. - - - - - Defines an ordered list. - - - - - Defines an ordered list. - - - - - Defines a group of related options in a drop-down list. - - - - - Defines a group of related options in a drop-down list. - - - - - Defines an option in a drop-down list. - - - - - Defines an option in a drop-down list. - - - - - Defines the result of a calculation. - - - - - Defines the result of a calculation. - - - - - Defines a paragraph. - - - - - Defines a paragraph. - - - - - Defines a parameter for an object. - - - - - Defines a parameter for an object. - - - - - Defines pre-formatted text. - - - - - Defines pre-formatted text. - - - - - Represents the progress of a task. - - - - - Represents the progress of a task. - - - - - Defines a short quotation. - - - - - Defines a short quotation. - - - - - Defines what to show in browsers that do not support ruby annotations. - - - - - Defines what to show in browsers that do not support ruby annotations. - - - - - Defines an explanation/pronunciation of characters (for East Asian typography). - - - - - Defines an explanation/pronunciation of characters (for East Asian typography). - - - - - Defines a ruby annotation (for East Asian typography). - - - - - Defines a ruby annotation (for East Asian typography). - - - - - Defines text that is no longer correct. - - - - - Defines text that is no longer correct. - - - - - Defines sample output from a computer program. - - - - - Defines sample output from a computer program. - - - - - Defines a client-side script. - - - - - Defines a client-side script. - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Defines a drop-down list. - - - - - Defines a drop-down list. - - - - - Defines smaller text. - - - - - Defines smaller text. - - - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines strike-through text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines strike-through text. - - - - - Defines important text. - - - - - Defines important text. - - - - - Defines style information for a document. - - - - - Defines style information for a document. - - - - - Defines subscripted text. - - - - - Defines subscripted text. - - - - - - - Defines superscripted text. - - - - - Defines superscripted text. - - - - - Defines a table. - - - - - Defines a table. - - - - - Groups the body content in a table. - - - - - Groups the body content in a table. - - - - - Defines a cell in a table. - - - - - Defines a cell in a table. - - - - - Defines a multi-line input control (text area). - - - - - Defines a multi-line input control (text area). - - - - - Groups the footer content in a table. - - - - - Groups the footer content in a table. - - - - - Defines a header cell in a table. - - - - - Defines a header cell in a table. - - - - - Groups the header content in a table. - - - - - Groups the header content in a table. - - - - - Defines a date/time. - - - - - Defines a date/time. - - - - - Defines a title for the document. - - - - - Defines a title for the document. - - - - - Defines a row in a table. - - - - - Defines a row in a table. - - - - - - - Not supported in HTML5. Defines Teletype text. - - - - - Not supported in HTML5. Defines Teletype text. - - - - - Defines text that should be stylistically different from normal text. - - - - - Defines text that should be stylistically different from normal text. - - - - - Defines an unordered list. - - - - - Defines an unordered list. - - - - - Defines a variable. - - - - - Defines a variable. - - - - - Defines a video or movie. - - - - - Defines a video or movie. - - - - - Defines a possible line-break. - - - - - Defines a possible line-break. - - - - - Indicates that the hyperlink is to be used for downloading a resource. - - - - - The URL of a linked resource. - - - - - Specifies the language of the linked resource. - - - - - Specifies a hint of the media for which the linked resource was designed. - - - - - - - - - - Specifies the relationship of the target object to the link object. - - - - - - - - - - - - - - - Specifies the horizontal alignment of the element. - - - - - Alternative text in case an image can't be displayed. - - - - - Specifies the URL of the applet's class file to be loaded and executed. - - - - - This attribute gives the absolute or relative URL of the directory where applets' .class files referenced by the code attribute are stored. - - - - - A set of values specifying the coordinates of the hot-spot region. - - - - - The audio or video should play as soon as possible. - - - - - Contains the time range of already buffered media. - - - - - Indicates whether the browser should show playback controls to the user. - - - - - Indicates whether the media should start playing from the start when it's finished. - - - - - Indicates whether the whole resource, parts of it or nothing should be preloaded. - - - - - The URL of the embeddable content. - - - - - Contains a URI which points to the source of the quote or change. - - - - - The element should be automatically focused after the page loaded. - - - - - Indicates whether the user can interact with the element. - - - - - Indicates the form that is the owner of the element. - - - - - Name of the element. For example used by the server to identify the fields in form submits. - - - - - Defines the type of the element. - - - - - Defines a default value which will be displayed in the element on page load. - - - - - - - - - - - - Indicates whether the element should be checked on page load. - - - - - Specifies a picture which represents the command. - - - - - - - - - - Indicates the date and time associated with the element. - - - - - Indicates whether the details will be shown on page load. - - - - - List of types the server accepts, typically a file type. - - - - - List of supported charsets. - - - - - The URI of a program that processes the information submitted via the form. - - - - - Indicates whether controls in this form can by default have their values automatically completed by the browser. - - - - - Defines the content type of the form date when the method is POST. - - - - - Defines which HTTP method to use when submitting the form. Can be GET (default) or POST. - - - - - This attribute indicates that the form shouldn't be validated when submitted. - - - - - Specifies the URL of the document's cache manifest. - - - - - - - - - - - - - - - - - - - - Indicatesthat the image is part of a server-side image map. - - - - - - - - - - - - - - - Identifies a list of pre-defined options to suggest to the user. - - - - - Indicates the maximum value allowed. - - - - - Defines the maximum number of characters allowed in the element. - - - - - Indicates the minimum value allowed. - - - - - Indicates whether multiple values can be entered in an input of the type email or file. - - - - - Defines a regular expression which the element's value will be validated against. - - - - - Provides a hint to the user of what can be entered in the field. - - - - - Indicates whether the element can be edited. - - - - - Indicates whether this element is required to fill out or not. - - - - - Defines the width of the element (in pixels). If the element's type attribute is text or password then it's the number of characters. - - - - - - - - - - A challenge string that is submitted along with the public key. - - - - - Specifies the type of key generated. - - - - - Describes elements which belongs to this one. - - - - - - - - - - Declares the character encoding of the page or script. - - - - - A value associated with http-equiv or name depending on the context. - - - - - - - - - - Indicates the lower bound of the upper range. - - - - - Indicates the upper bound of the lower range. - - - - - Indicates the optimal numeric value. - - - - - Specifies the URL of the resource. - - - - - Indicates whether the list should be displayed in a descending order instead of a ascending. - - - - - Defines the first number if other than 1. - - - - - Defines a value which will be selected on page load. - - - - - Indicates that the script should be executed asynchronously. - - - - - Indicates that the script should be executed after the page has been parsed. - - - - - Defines the script language used in the element. - - - - - - - - - - - - - - - The colspan attribute defines the number of columns a cell should span. - - - - - - Defines the number of rows a table cell should span over. - - - - - Defines the number of columns in a textarea. - - - - - Defines the number of rows in a textarea. - - - - - Indicates whether the text should be wrapped. - - - - - - - - - - - Indicates that the track should be enabled unless the user's preferences indicate something different. - - - - - Specifies the kind of text track. - - - - - Specifies a user-readable title of the text track. - - - - - - - - - - A URL indicating a poster frame to show until the user plays or seeks. - - - - - Defines a keyboard shortcut to activate or add focus to the element. - - - - - Often used with CSS to style elements with common properties. - - - - - Indicates whether the element's content is editable. - - - - - - lets you attach custom attribute to html elements. - - - - - Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left) - - - - - Defines whether the element can be dragged. - - - - - Indicates that the element accept the dropping of content on it. - - - - - Indicates the relevance of an element. - - - - - Often used with CSS to style a specific element. The value of this attribute must be unique. - - - - - - - - - - Defines the language used in the element. - - - - - Indicates whether spell checking is allowed for the element. - - - - - Defines CSS styles which will override styles previously set. - - - - - Overrides the browser's default tab order and follows the one specified instead. - - - - - Text to be displayed in a tooltip when hovering over the element. - - - - diff --git a/Site/bin/Debug/Site.dll b/Site/bin/Debug/Site.dll deleted file mode 100644 index b04ed38e2837859174479a0f42d89cb6a57d8e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 zcmeHL-ESOM6+bik;q}JZ*qb_b(rhyM#MtT9v0a+9Y3hyFPPW*w<6Wmsv9M=%Z`PB} z&TM98lPn=sDj-rQh^P-pkqW30JU~IJDkK^Zln07=nWrBX*d3(n@ z%Jl6Wg%!iqYK~oT^r}|UEz9<_qR^bWr5To%oy}`iyDZY{*T;7UrspP!rj-y~E64Qa zXm@C*woVy_ad4tO*V>0xLmfvY>Xx|b`^}6%jp#B6@VSI&`5Uatf2(akG7DuZ?9MVW zPV{vS#Dis-s0+OJ2ci3*?2~AXDAp#Afj-tor#*4O1MRVK$mCoDzd^~O5iO@3*C~OL zzKsLng_83@8{SQgLY!#u422w6soCq94mpt)j!@FZ;SSo478*SiiT8gSTFRbHYABqf0n9OaV^3e? z#=0Tu7=&(|u0R)4>IsYvU~9x5Tkl(y#E{Y#kM3Kfrlr2XVzYHp82`q=2K2izfB?oZ zKvULiofA^0N9rUc+z2>;ctqC?#Rf11wCoam3K2B;?DUYk4uU;>moS-de2Ah_uF_t} zF%`(M5b?MgwR_Q$YH#8uYWK12&UTwBLFC&U=!aCbH#c=!b`=;5bX0o_i#uQ<5U=Hz zdI^DB^-Ga^1XJlD^$ZKeKE##>H2YJixI=Ya{qAi17L9BKiG3_E~E^tJ7zV}8a z!a;Ob8RbAgg%B~0huqGHvh*F3CdM%bsl$5h6}C{iRpucybV~WE8l~S$_!~0R4fHxx zqV#8a68u97!<2+SldvJ-YZCrV>V%aKlqlU+hoGs@Jo>JaaJTvd@NIx``m4GCX(x2z zG)j!WuY4$7;r-4Y@~@lTrknIci~2!8MPMftvH+i@voxo1k1PF4a=aIPir!S~=yxHY z`srmv<%a=vj$TDP4(vcT`fhAv=sL2`3jy^P_4}Z{)uMhxo%B|VdK13?sYShwnf<** z-9)@&JK3i13l1qfxQSUQ7@b$;55PloRr1?8uSw2`)D#llk&xG4p*gjamaslOfKl2E z7^lwzcGG?d4@#JkFel*&2~SC=OK1Q_;h#f~(sk+xJw|WP*AV$Ps48JhLN&yk&FUz8 zWc^ntr%nO>1d+Z)pMB9`d^f`J8E4hr=D46l~&~Fi|2&i5PUxpfZx3m zS~E=9V_um01&O&I?>y%qtR?T`f(g6UaE!{znxbk=w;HQ`=IfScR0WTTaf*g%cx}>2 zt7MmvOq)v+Xs1sK$HjzLQn3AeOB~j8*)(aztC}<;sxjKzouzcivmNfz96M|170Y%#qvSSOO?Ui=2`4X{b4E$H!Ro?2>^zY3 zqJq6D9Nw3%+&V6Aq$3RvB$m*n+2R>&IkIa@xoXWcN`^%ua|a9pWzQT0{lKD!k5S8`~C301cuk(vmSptzA#R-mmlgu*&7-Ib`o!*CBR9% zmh*Vk%+hhtIlw9ZtDAlu{^&pcdq|<#)3>%U&h4{-9ex+_nQbpw5DKj7$jMX4y(aQ( z4!QR6!K(ZP&$#AVg9=2&UmbtZmX zp2G`R!A&O+9oFU<*Kn6{#47S8&3~o&iG+q*G=pdD&48l^oEq`_RUai8mLoc-= zNO(E3ud~58ygEF3bETQ`qq&yPe*EXq*Tzihh^yB&OX&*!3Bs|wU+2Myep)=Iq>T)` n<`+a2JHtd|H0;XzSLV~~_#Qn(sQKU2wL=flhtGz7Xc71?8!+C? diff --git a/Site/bin/Release/Hyperlinq.dll b/Site/bin/Release/Hyperlinq.dll deleted file mode 100644 index d7f0352c0a932e082aba96f9e258375bc73922f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71168 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 - - - Hyperlinq - - - - - Merges two attribute chains with css-awareness. Unlike Join, which merely concatenate two chains, - Merge merges multiple css attributes into a single css attribute. - - - - - Defines a hyperlink. - - - - - Defines a hyperlink. - - - - - Defines an abbreviation. - - - - - Defines an abbreviation. - - - - - Not supported in HTML5. Defines an acronym. - - - - - Not supported in HTML5. Defines an acronym. - - - - - Defines contact information for the author/owner of a document. - - - - - Defines contact information for the author/owner of a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines an embedded applet. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines an embedded applet. - - - - - Defines an area inside an image-map. - - - - - Defines an area inside an image-map. - - - - - Defines an article. - - - - - Defines an article. - - - - - Defines content aside from the page content. - - - - - Defines content aside from the page content. - - - - - Defines sound content. - - - - - Defines sound content. - - - - - Defines bold text. - - - - - Defines bold text. - - - - - Specifies the base URL/target for all relative URLs in a document. - - - - - Specifies the base URL/target for all relative URLs in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Specifies a default colour, size, and font for all text in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Specifies a default colour, size, and font for all text in a document. - - - - - Isolates a part of text that might be formatted in a different direction from other text outside it. - - - - - Isolates a part of text that might be formatted in a different direction from other text outside it. - - - - - Overrides the current text direction. - - - - - Overrides the current text direction. - - - - - Not supported in HTML5. Defines big text. - - - - - Not supported in HTML5. Defines big text. - - - - - Defines a section that is quoted from another source. - - - - - Defines a section that is quoted from another source. - - - - - Defines the document's body. - - - - - Defines the document's body. - - - - - Defines a single line break. - - - - - Defines a single line break. - - - - - Defines a generic form button which can contain a range of other elements to create complex buttons. - - - - - Defines a generic form button which can contain a range of other elements to create complex buttons. - - - - - Used to draw graphics, on the fly, via scripting (usually JavaScript). - - - - - Used to draw graphics, on the fly, via scripting (usually JavaScript). - - - - - Defines a table caption. - - - - - Defines a table caption. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines centred text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines centred text. - - - - - Defines the title of a work. - - - - - Defines the title of a work. - - - - - Defines a piece of computer code. - - - - - Defines a piece of computer code. - - - - - - - Specifies a group of one or more columns in a table for formatting. - - - - - Specifies a group of one or more columns in a table for formatting. - - - - - Defines a command button that a user can invoke. - - - - - Defines a command button that a user can invoke. - - - - - Specifies a list of pre-defined options for input controls. - - - - - Specifies a list of pre-defined options for input controls. - - - - - Defines a description of an item in a definition list. - - - - - Defines a description of an item in a definition list. - - - - - Defines text that has been deleted from a document. - - - - - Defines text that has been deleted from a document. - - - - - Defines additional details that the user can view or hide. - - - - - Defines additional details that the user can view or hide. - - - - - Defines a definition term. - - - - - Defines a definition term. - - - - - Defines a dialog box or window. - - - - - Defines a dialog box or window. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines a directory list. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines a directory list. - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Defines a definition list. - - - - - Defines a definition list. - - - - - Defines a term (an item) in a definition list. - - - - - Defines a term (an item) in a definition list. - - - - - Defines emphasized text . - - - - - Defines emphasized text . - - - - - Defines a container for an external (non-HTML) application. - - - - - Defines a container for an external (non-HTML) application. - - - - - Groups related elements in a form. - - - - - Groups related elements in a form. - - - - - - - Specifies self-contained content. - - - - - Specifies self-contained content. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines font, colour, and size for text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines font, colour, and size for text. - - - - - Defines a footer for a document or section. - - - - - Defines a footer for a document or section. - - - - - Defines an HTML form for user input. - - - - - Defines an HTML form for user input. - - - - - Not supported in HTML5. Defines a window (a frame) in a frameset. - - - - - Not supported in HTML5. Defines a window (a frame) in a frameset. - - - - - Not supported in HTML5. Defines a set of frames. - - - - - Not supported in HTML5. Defines a set of frames. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines HTML headings. - - - - - Defines information about the document. - - - - - Defines information about the document. - - - - - Defines a header for a document or section. - - - - - Defines a header for a document or section. - - - - - - - Defines a thematic change in the content. - - - - - Defines a thematic change in the content. - - - - - Defines the root of an HTML document. - - - - - Defines the root of an HTML document. - - - - - Defines a part of text in an alternate voice or mood. - - - - - Defines a part of text in an alternate voice or mood. - - - - - Defines an inline frame. - - - - - Defines an inline frame. - - - - - Defines an image. - - - - - Defines an image. - - - - - Defines an input control. - - - - - Defines an input control. - - - - - Defines a text that has been inserted into a document. - - - - - Defines a text that has been inserted into a document. - - - - - Defines keyboard input. - - - - - Defines keyboard input. - - - - - Defines a key-pair generator field (for forms). - - - - - Defines a key-pair generator field (for forms). - - - - - - - - - Defines a list item. - - - - - Defines a list item. - - - - - Defines the relationship between a document and an external resource (most used to link to style sheets). - - - - - Defines the relationship between a document and an external resource (most used to link to style sheets). - - - - - Defines a client-side image-map. - - - - - Defines a client-side image-map. - - - - - Defines marked/highlighted text. - - - - - Defines marked/highlighted text. - - - - - Defines a list/menu of commands. - - - - - Defines a list/menu of commands. - - - - - Defines metadata about an HTML document. - - - - - Defines metadata about an HTML document. - - - - - Defines a scalar measurement within a known range (a gauge). - - - - - Defines a scalar measurement within a known range (a gauge). - - - - - Defines navigation links. - - - - - Defines navigation links. - - - - - Not supported in HTML5. Defines an alternate content for users that do not support frames. - - - - - Not supported in HTML5. Defines an alternate content for users that do not support frames. - - - - - Defines an alternate content for users that do not support client-side scripts. - - - - - Defines an alternate content for users that do not support client-side scripts. - - - - - Defines an embedded object. - - - - - Defines an embedded object. - - - - - Defines an ordered list. - - - - - Defines an ordered list. - - - - - Defines a group of related options in a drop-down list. - - - - - Defines a group of related options in a drop-down list. - - - - - Defines an option in a drop-down list. - - - - - Defines an option in a drop-down list. - - - - - Defines the result of a calculation. - - - - - Defines the result of a calculation. - - - - - Defines a paragraph. - - - - - Defines a paragraph. - - - - - Defines a parameter for an object. - - - - - Defines a parameter for an object. - - - - - Defines pre-formatted text. - - - - - Defines pre-formatted text. - - - - - Represents the progress of a task. - - - - - Represents the progress of a task. - - - - - Defines a short quotation. - - - - - Defines a short quotation. - - - - - Defines what to show in browsers that do not support ruby annotations. - - - - - Defines what to show in browsers that do not support ruby annotations. - - - - - Defines an explanation/pronunciation of characters (for East Asian typography). - - - - - Defines an explanation/pronunciation of characters (for East Asian typography). - - - - - Defines a ruby annotation (for East Asian typography). - - - - - Defines a ruby annotation (for East Asian typography). - - - - - Defines text that is no longer correct. - - - - - Defines text that is no longer correct. - - - - - Defines sample output from a computer program. - - - - - Defines sample output from a computer program. - - - - - Defines a client-side script. - - - - - Defines a client-side script. - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Defines a drop-down list. - - - - - Defines a drop-down list. - - - - - Defines smaller text. - - - - - Defines smaller text. - - - - - - - Defines a section in a document. - - - - - Defines a section in a document. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines strike-through text. - - - - - Not supported in HTML5. Deprecated in HTML 4.01. Defines strike-through text. - - - - - Defines important text. - - - - - Defines important text. - - - - - Defines style information for a document. - - - - - Defines style information for a document. - - - - - Defines subscripted text. - - - - - Defines subscripted text. - - - - - - - Defines superscripted text. - - - - - Defines superscripted text. - - - - - Defines a table. - - - - - Defines a table. - - - - - Groups the body content in a table. - - - - - Groups the body content in a table. - - - - - Defines a cell in a table. - - - - - Defines a cell in a table. - - - - - Defines a multi-line input control (text area). - - - - - Defines a multi-line input control (text area). - - - - - Groups the footer content in a table. - - - - - Groups the footer content in a table. - - - - - Defines a header cell in a table. - - - - - Defines a header cell in a table. - - - - - Groups the header content in a table. - - - - - Groups the header content in a table. - - - - - Defines a date/time. - - - - - Defines a date/time. - - - - - Defines a title for the document. - - - - - Defines a title for the document. - - - - - Defines a row in a table. - - - - - Defines a row in a table. - - - - - - - Not supported in HTML5. Defines Teletype text. - - - - - Not supported in HTML5. Defines Teletype text. - - - - - Defines text that should be stylistically different from normal text. - - - - - Defines text that should be stylistically different from normal text. - - - - - Defines an unordered list. - - - - - Defines an unordered list. - - - - - Defines a variable. - - - - - Defines a variable. - - - - - Defines a video or movie. - - - - - Defines a video or movie. - - - - - Defines a possible line-break. - - - - - Defines a possible line-break. - - - - - Indicates that the hyperlink is to be used for downloading a resource. - - - - - The URL of a linked resource. - - - - - Specifies the language of the linked resource. - - - - - Specifies a hint of the media for which the linked resource was designed. - - - - - - - - - - Specifies the relationship of the target object to the link object. - - - - - - - - - - - - - - - Specifies the horizontal alignment of the element. - - - - - Alternative text in case an image can't be displayed. - - - - - Specifies the URL of the applet's class file to be loaded and executed. - - - - - This attribute gives the absolute or relative URL of the directory where applets' .class files referenced by the code attribute are stored. - - - - - A set of values specifying the coordinates of the hot-spot region. - - - - - The audio or video should play as soon as possible. - - - - - Contains the time range of already buffered media. - - - - - Indicates whether the browser should show playback controls to the user. - - - - - Indicates whether the media should start playing from the start when it's finished. - - - - - Indicates whether the whole resource, parts of it or nothing should be preloaded. - - - - - The URL of the embeddable content. - - - - - Contains a URI which points to the source of the quote or change. - - - - - The element should be automatically focused after the page loaded. - - - - - Indicates whether the user can interact with the element. - - - - - Indicates the form that is the owner of the element. - - - - - Name of the element. For example used by the server to identify the fields in form submits. - - - - - Defines the type of the element. - - - - - Defines a default value which will be displayed in the element on page load. - - - - - - - - - - - - Indicates whether the element should be checked on page load. - - - - - Specifies a picture which represents the command. - - - - - - - - - - Indicates the date and time associated with the element. - - - - - Indicates whether the details will be shown on page load. - - - - - List of types the server accepts, typically a file type. - - - - - List of supported charsets. - - - - - The URI of a program that processes the information submitted via the form. - - - - - Indicates whether controls in this form can by default have their values automatically completed by the browser. - - - - - Defines the content type of the form date when the method is POST. - - - - - Defines which HTTP method to use when submitting the form. Can be GET (default) or POST. - - - - - This attribute indicates that the form shouldn't be validated when submitted. - - - - - Specifies the URL of the document's cache manifest. - - - - - - - - - - - - - - - - - - - - Indicatesthat the image is part of a server-side image map. - - - - - - - - - - - - - - - Identifies a list of pre-defined options to suggest to the user. - - - - - Indicates the maximum value allowed. - - - - - Defines the maximum number of characters allowed in the element. - - - - - Indicates the minimum value allowed. - - - - - Indicates whether multiple values can be entered in an input of the type email or file. - - - - - Defines a regular expression which the element's value will be validated against. - - - - - Provides a hint to the user of what can be entered in the field. - - - - - Indicates whether the element can be edited. - - - - - Indicates whether this element is required to fill out or not. - - - - - Defines the width of the element (in pixels). If the element's type attribute is text or password then it's the number of characters. - - - - - - - - - - A challenge string that is submitted along with the public key. - - - - - Specifies the type of key generated. - - - - - Describes elements which belongs to this one. - - - - - - - - - - Declares the character encoding of the page or script. - - - - - A value associated with http-equiv or name depending on the context. - - - - - - - - - - Indicates the lower bound of the upper range. - - - - - Indicates the upper bound of the lower range. - - - - - Indicates the optimal numeric value. - - - - - Specifies the URL of the resource. - - - - - Indicates whether the list should be displayed in a descending order instead of a ascending. - - - - - Defines the first number if other than 1. - - - - - Defines a value which will be selected on page load. - - - - - Indicates that the script should be executed asynchronously. - - - - - Indicates that the script should be executed after the page has been parsed. - - - - - Defines the script language used in the element. - - - - - - - - - - - - - - - The colspan attribute defines the number of columns a cell should span. - - - - - - Defines the number of rows a table cell should span over. - - - - - Defines the number of columns in a textarea. - - - - - Defines the number of rows in a textarea. - - - - - Indicates whether the text should be wrapped. - - - - - - - - - - - Indicates that the track should be enabled unless the user's preferences indicate something different. - - - - - Specifies the kind of text track. - - - - - Specifies a user-readable title of the text track. - - - - - - - - - - A URL indicating a poster frame to show until the user plays or seeks. - - - - - Defines a keyboard shortcut to activate or add focus to the element. - - - - - Often used with CSS to style elements with common properties. - - - - - Indicates whether the element's content is editable. - - - - - - lets you attach custom attribute to html elements. - - - - - Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left) - - - - - Defines whether the element can be dragged. - - - - - Indicates that the element accept the dropping of content on it. - - - - - Indicates the relevance of an element. - - - - - Often used with CSS to style a specific element. The value of this attribute must be unique. - - - - - - - - - - Defines the language used in the element. - - - - - Indicates whether spell checking is allowed for the element. - - - - - Defines CSS styles which will override styles previously set. - - - - - Overrides the browser's default tab order and follows the one specified instead. - - - - - Text to be displayed in a tooltip when hovering over the element. - - - - diff --git a/Site/bin/Release/Site.dll b/Site/bin/Release/Site.dll deleted file mode 100644 index e399aeb4a544a16c6b323cfc0623a7635ffefb13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 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 diff --git a/Site/obj/Debug/.NETFramework,Version=v4.7.AssemblyAttribute.cs b/Site/obj/Debug/.NETFramework,Version=v4.7.AssemblyAttribute.cs deleted file mode 100644 index 0efd41a..0000000 --- a/Site/obj/Debug/.NETFramework,Version=v4.7.AssemblyAttribute.cs +++ /dev/null @@ -1,2 +0,0 @@ -// -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7", FrameworkDisplayName = "")] diff --git a/Site/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/Site/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs deleted file mode 100644 index 15efebf..0000000 --- a/Site/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/Site/obj/Debug/Site.csproj.AssemblyReference.cache b/Site/obj/Debug/Site.csproj.AssemblyReference.cache deleted file mode 100644 index 02caf54b399ed8b87944a9e191975cacf354deb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmeZu3JP{+WMpArU|>vgwu%WT%1UF)Y0w9J~1%2gpt?peh4BV*_JDO9sYx8aN=gI61#4Co_q#?Xfhl9qN68K2M{a Q-4VGtdOn$Xg#-ft0QhF9Q~&?~ diff --git a/Site/obj/Debug/Site.csproj.CoreCompileInputs.cache b/Site/obj/Debug/Site.csproj.CoreCompileInputs.cache deleted file mode 100644 index 6909698..0000000 --- a/Site/obj/Debug/Site.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -d6ca3b791b6c76aeeb1b4696b0f39574a0557b9e diff --git a/Site/obj/Debug/Site.csproj.FileListAbsolute.txt b/Site/obj/Debug/Site.csproj.FileListAbsolute.txt deleted file mode 100644 index 0b4fd34..0000000 --- a/Site/obj/Debug/Site.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,17 +0,0 @@ -/home/tom/site/Site/bin/Debug/Site.dll -/home/tom/site/Site/bin/Debug/Site.pdb -/home/tom/site/Site/bin/Debug/Hyperlinq.dll -/home/tom/site/Site/obj/Debug/Site.csproj.CoreCompileInputs.cache -/home/tom/site/Site/obj/Debug/Site.csproj.CopyComplete -/home/tom/site/Site/obj/Debug/Site.dll -/home/tom/site/Site/obj/Debug/Site.pdb -/home/tom/site/Site/obj/Debug/Site.csprojAssemblyReference.cache -C:\Users\DemetroaLovato\site\Site\bin\Debug\Site.dll -C:\Users\DemetroaLovato\site\Site\bin\Debug\Site.pdb -C:\Users\DemetroaLovato\site\Site\bin\Debug\Hyperlinq.dll -C:\Users\DemetroaLovato\site\Site\bin\Debug\Hyperlinq.xml -C:\Users\DemetroaLovato\site\Site\obj\Debug\Site.csproj.AssemblyReference.cache -C:\Users\DemetroaLovato\site\Site\obj\Debug\Site.csproj.CoreCompileInputs.cache -C:\Users\DemetroaLovato\site\Site\obj\Debug\Site.csproj.CopyComplete -C:\Users\DemetroaLovato\site\Site\obj\Debug\Site.dll -C:\Users\DemetroaLovato\site\Site\obj\Debug\Site.pdb diff --git a/Site/obj/Debug/Site.csproj.FilesWrittenAbsolute.txt b/Site/obj/Debug/Site.csproj.FilesWrittenAbsolute.txt deleted file mode 100644 index 63b8c66..0000000 --- a/Site/obj/Debug/Site.csproj.FilesWrittenAbsolute.txt +++ /dev/null @@ -1,6 +0,0 @@ -/home/tom/site/Site/obj/Debug/.NETFramework,Version=v4.7.AssemblyAttribute.cs -/home/tom/site/Site/bin/Debug/Site.pdb -/home/tom/site/Site/bin/Debug/Site.dll -/home/tom/site/Site/obj/Debug/Site.dll -/home/tom/site/Site/obj/Debug/Site.pdb -/home/tom/site/Site/bin/Debug/Hyperlinq.dll diff --git a/Site/obj/Debug/Site.csprojAssemblyReference.cache b/Site/obj/Debug/Site.csprojAssemblyReference.cache deleted file mode 100644 index 32472c0011c4d1054d9e9246928d9e9cd1847088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmaJ-Jx{|h5Oqk>55mxii6QKjm8gnfiI9kdDggqNsw3!}Rpp|fR;OX&Jv|1U}TYl+;?Dz`I#_&pMoTqElMyR383!d|gXY;gj z(mIXhfX-@=^Yq>|Qnc5&Td55WWs@!XqCe~Nyel$TKupa}fA3N6jKytj!6K=qy^#2I z3QxYTd=nWrBX*d3(n@ z%Jl6Wg%!iqYK~oT^r}|UEz9<_qR^bWr5To%oy}`iyDZY{*T;7UrspP!rj-y~E64Qa zXm@C*woVy_ad4tO*V>0xLmfvY>Xx|b`^}6%jp#B6@VSI&`5Uatf2(akG7DuZ?9MVW zPV{vS#Dis-s0+OJ2ci3*?2~AXDAp#Afj-tor#*4O1MRVK$mCoDzd^~O5iO@3*C~OL zzKsLng_83@8{SQgLY!#u422w6soCq94mpt)j!@FZ;SSo478*SiiT8gSTFRbHYABqf0n9OaV^3e? z#=0Tu7=&(|u0R)4>IsYvU~9x5Tkl(y#E{Y#kM3Kfrlr2XVzYHp82`q=2K2izfB?oZ zKvULiofA^0N9rUc+z2>;ctqC?#Rf11wCoam3K2B;?DUYk4uU;>moS-de2Ah_uF_t} zF%`(M5b?MgwR_Q$YH#8uYWK12&UTwBLFC&U=!aCbH#c=!b`=;5bX0o_i#uQ<5U=Hz zdI^DB^-Ga^1XJlD^$ZKeKE##>H2YJixI=Ya{qAi17L9BKiG3_E~E^tJ7zV}8a z!a;Ob8RbAgg%B~0huqGHvh*F3CdM%bsl$5h6}C{iRpucybV~WE8l~S$_!~0R4fHxx zqV#8a68u97!<2+SldvJ-YZCrV>V%aKlqlU+hoGs@Jo>JaaJTvd@NIx``m4GCX(x2z zG)j!WuY4$7;r-4Y@~@lTrknIci~2!8MPMftvH+i@voxo1k1PF4a=aIPir!S~=yxHY z`srmv<%a=vj$TDP4(vcT`fhAv=sL2`3jy^P_4}Z{)uMhxo%B|VdK13?sYShwnf<** z-9)@&JK3i13l1qfxQSUQ7@b$;55PloRr1?8uSw2`)D#llk&xG4p*gjamaslOfKl2E z7^lwzcGG?d4@#JkFel*&2~SC=OK1Q_;h#f~(sk+xJw|WP*AV$Ps48JhLN&yk&FUz8 zWc^ntr%nO>1d+Z)pMB9`d^f`J8E4hr=D46l~&~Fi|2&i5PUxpfZx3m zS~E=9V_um01&O&I?>y%qtR?T`f(g6UaE!{znxbk=w;HQ`=IfScR0WTTaf*g%cx}>2 zt7MmvOq)v+Xs1sK$HjzLQn3AeOB~j8*)(aztC}<;sxjKzouzcivmNfz96M|170Y%#qvSSOO?Ui=2`4X{b4E$H!Ro?2>^zY3 zqJq6D9Nw3%+&V6Aq$3RvB$m*n+2R>&IkIa@xoXWcN`^%ua|a9pWzQT0{lKD!k5S8`~C301cuk(vmSptzA#R-mmlgu*&7-Ib`o!*CBR9% zmh*Vk%+hhtIlw9ZtDAlu{^&pcdq|<#)3>%U&h4{-9ex+_nQbpw5DKj7$jMX4y(aQ( z4!QR6!K(ZP&$#AVg9=2&UmbtZmX zp2G`R!A&O+9oFU<*Kn6{#47S8&3~o&iG+q*G=pdD&48l^oEq`_RUai8mLoc-= zNO(E3ud~58ygEF3bETQ`qq&yPe*EXq*Tzihh^yB&OX&*!3Bs|wU+2Myep)=Iq>T)` n<`+a2JHtd|H0;XzSLV~~_#Qn(sQKU2wL=flhtGz7Xc71?8!+C? diff --git a/Site/obj/Debug/Site.pdb b/Site/obj/Debug/Site.pdb deleted file mode 100644 index 167a1515f0a484ba6f9655ef7f8dd7fad198ec13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15872 zcmeHNeN3HK89$feEwqIe%4pYNcXiP9V_ZJla%*S#9%RL}gX!v+<#Ks}YcE`S?@K!p z{~%_zUAj#cT{aCSRTI<2Cc4-d*UZ{vi`B`@_J?jW(`=s4?OR4zMhZsoO7OY-uK+5U?38XhC6LfO;OFJO`fLade2sGadF0yHMPwGkRt!Z zok*Tw9`I>JlFwVf10&-}SjZlz5F$AR7VrdEdZxsMIUvLejUX$<_;@Pl`1m3`lW;40 zV7l?oNsj-mJmi!5_HA#8>zf^EeiurIc8#sNt?A!YM^jh4y7*r&eQX-Cj_8E9cb82q za#knP^TY$wt$%KZ&iKzfyEB!}lP)IBOyGg!_$P4A0;sy&zI(^%#pkkyn#ITiKTP@l zuj}sr&fos}yR4xdD!=r5hrXQEc`oafjY3>bYkXz-8yk-NB5P&!;iCsLzwz9OT#xqA zTOIEEbFK{U-LU8UN5h|O%X#97XRFS9ee4g%K3XyIgEwETUI4C~mtDMBR*z*z!v3A%1AaT)8V%Z3Ycn5v!u>7%?H1GC0D^j8TWi1M=+GP?2Zv-E z2>09IV455=s|dG$75dxzyIQ?psB5W@_lzS_@Rne%`(;gbA zvh7H)z2CN?6h5;x6yBkP_gZ#mO!xt(aK9GrpCo){%XdY>eOAN{TG3WxUt@1)cy^Zc zO)wk%LCw4rL(>5)1sdRRl>yfx@dz^-PJu2qnOV>~{!;83MZ1DCAAJ1&;Xk?@qGrJ@ z1iuivf#kyxQ37pP52Wmir{DipH`2y_)>%LU?1O3h^5ObXwxulgm37Xx?5Anlb9VPK zwq^g>mUYgyC`!UCJizySuh^Kyrf=x>>6((jtsGwU{l^=y!x15J#iA_oJr6W((M~K8 z`B@J&4@7ONN35Mlduzg>kQK18c%$C?tX?Y;42Voeed7Z{ER&Bm7t(o^4E@WiYeU?o%oU8O-B??af z+1|8SD?D->P%J6s1j4<0ZMdZvY3kcHla1&g{bFoP#pucOs$7@T-ZnZ6a7YpPgfHFI zNP%4lZ7-A8t21S}()ka_*iJzJ7yitgVeDYP2q+t5+*$&f1`3-8({aeV~RA7H82fmUqn)QsS zNmv*j;P{v7cxme{XFIz7Da3@=ke5@U%d+>@_4L^T*A){|7>9Bp$Qh&a^<2Z8j{!oK z`%lQps&L=l#-6@VFc6gHF?Mo3zXv3bX}3nlPV^@hJEL}_hw=7?;%1(TVP;Pm*7hP6 z!~kpDO=G9C_c~(dw0_Fb@jBKyXvf-j)1Pyx_erhSIVTXS-FMHi-c$x$0OyPW>rxkpcgTp<4MYxOzIUysDDJX zibv%>*oJa7?_F{YAd3koL<Gf&E{t)7Wzd z)3G;SLLO^VtxHh&M~nbRffs9q%zIRoD5tw}Gs z_)}RN2|8Kmu)A%JR2TWr+KjP( z&&XHhx_$XXd)l8OCJv~ky(-u3vEi9Ma6Y7n$%jkBqv|xzmI%A| z33ybU=Bb$AS&c;(Pmik8JlJrJo}mOhs!sFx1! zMf>pS*%CFrty`*mbybRk_No+pz?8|W(oDgl@)Cbpp|3blTqe7mDXYl6otR^ zUNru|JM|}kbu7pC!cPF}?gH}r@l;@4HSo~X3glV$8ZcYeF>iorzE`f(1yk$DY~BN> z*6|%r9vZ+qwT|y@@$~VXY*`$AeAjZmXX$1bixk243~DlC$9rq@zGTWs7s*j{frDS3 zCq@y+8Syl5=370-RAqTm0nf}o)SdsQnIIvF@bOu9Kv}opw*eTb-QrK*HZ{QO5 zn)D>NlI3TWOdwr-ff+y-ke?24Z6L2;UkByYEdifV#U`Lx&S^-qts6-Azx|w=#(IE9 z(Gwg&#TCR;QUjwXA4R6yf$NdJfOa0xW9S*r4BRI?SYAl-K0|hl`vhYb{lhiRI~jJI yPGINh96FI}oaa!+55@`Flmq0q1>CjBn8O&Hgq!byyqhmFDKY7RqzC4S2mS}|`7jLt diff --git a/Site/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs b/Site/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs deleted file mode 100644 index 3aa5318..0000000 --- a/Site/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] diff --git a/Site/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/Site/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs deleted file mode 100644 index 15efebf..0000000 --- a/Site/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/Site/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/Site/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 74e4763ea70ee3c8e1e999c4fec36976c3df89b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6139 zcmeHLUsD@55VyfxFoYD-ln`iAw@urmNU4f=QHU0dr5bx6Ei>|oJB?FgK^Hv^o6dsGT;ZGzP*~g!F5xx78$%K*h#dxw&1psE@&;)3-q2F zoD-&8M+Cf57#QwDN93ZWc9ir?sG$UPP!OQ1qLMx;{fL_GsV+APi#22oTUH`5jC3fO zOj`Iwni%?Pq}h~#a;Ui2J1s%clVkhxFdF$2w|IX_2JieXxS(p zG;&#AyHW{WJKJLm|9guqFSA8=ajCF6zX17_)oSiKKW?e3{fI-gw_&~I>XOMpiuNOm z;@#8_<+nVidc1)K3EGbw8YF11UYyk=;o$TzlCgA(nj=II4kXfdkl@cKku;GpBI8KL zth-1P)&!E5C#4Q@dR|5#eZ&+vG1ztNcbkfOf#<=JBa@5B0oXfA0LQ z5q&xv;Db?;y^)8^NJk_5amqww?W0oy0Zao9(ugoCh=NL>r8tZs?-}H=UFPmX`U~=O z63OhR&UBGIIb~(Ae~S9EvA0>`Pa!`QjrfvUzUIQZkF7D}jAb?wkL!&6Sd$NG8ATtvPIawaPzdA%spTY(6$>PeQOrQD%Xm2C7jnS zyi5ol{9zZ+-DL;imJ@(k$p7LB4uLs0fP9=o&3mXBfno#i3)$%UkbQc*vh)lC-+_|Z z&H^IDKDW?u*gjoyhhpb+pH=xF*e zo_gIULr8%NT-G;8%6&L)GXz5-3t4QWiddRT5+sRm%6V6kgi$VWGXz@b$q;ZMZ>{f; z%$%%WSt~oWzQ^9Flh-^jR2`wR$rf&%Q|k%xXHP0u7lK-+)(_a<3oP^_>X|qxu_Jo< zQlaS7`UzP!hV}+{RO3Mmk1~XM2-;ask@RC-tY@frw+{{8+HA|#5Ea#@cc zegr4(NF4YbAi)(*{0(?^lPnSKp=#?~;@J7#_rB-%`C#|B?I2V#3JRinI?*er z46&-#R&}fPz(8j!Nuxayl0;LIxT2&31=Bpyn#ys?Ko`kJowuPi|N0i6Y}S9j*DHW> zI|<`3>IeOpyE0&OF2v6d&n|BLC^u8Ya)S6G3g^NpGE-}O5Z*H~>aYQ!EgA!kVybL$Da|{%HW1oKDyPh1t}~vuwiGOF8n8)gAF8)7;G*_2 sA*PkfwE#jl3YTm~^KUZHx}%R7>aMO;itaqCU;Nb(NQ-oNMa&@a536Yt`v3p{ diff --git a/Site/obj/Release/Site.csproj.CoreCompileInputs.cache b/Site/obj/Release/Site.csproj.CoreCompileInputs.cache deleted file mode 100644 index 51eb423..0000000 --- a/Site/obj/Release/Site.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -adbfa313b79cf09cc32e4ed7094771e5432b96e5 diff --git a/Site/obj/Release/Site.csproj.FileListAbsolute.txt b/Site/obj/Release/Site.csproj.FileListAbsolute.txt deleted file mode 100644 index 236a7bf..0000000 --- a/Site/obj/Release/Site.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,12 +0,0 @@ -/home/tom/site/Site/bin/Release/Site.dll -/home/tom/site/Site/bin/Release/Hyperlinq.dll -/home/tom/site/Site/obj/Release/Site.csproj.CoreCompileInputs.cache -/home/tom/site/Site/obj/Release/Site.csproj.CopyComplete -/home/tom/site/Site/obj/Release/Site.dll -C:\Users\DemetroaLovato\site\Site\bin\Release\Site.dll -C:\Users\DemetroaLovato\site\Site\bin\Release\Hyperlinq.dll -C:\Users\DemetroaLovato\site\Site\bin\Release\Hyperlinq.xml -C:\Users\DemetroaLovato\site\Site\obj\Release\Site.csproj.AssemblyReference.cache -C:\Users\DemetroaLovato\site\Site\obj\Release\Site.csproj.CoreCompileInputs.cache -C:\Users\DemetroaLovato\site\Site\obj\Release\Site.csproj.CopyComplete -C:\Users\DemetroaLovato\site\Site\obj\Release\Site.dll diff --git a/Site/obj/Release/Site.dll b/Site/obj/Release/Site.dll deleted file mode 100644 index e399aeb4a544a16c6b323cfc0623a7635ffefb13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 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 diff --git a/Site/packages.config b/Site/packages.config deleted file mode 100644 index bf19605..0000000 --- a/Site/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/TYTD.Api/MyClass.cs b/TYTD.Api/MyClass.cs new file mode 100644 index 0000000..d8f9642 --- /dev/null +++ b/TYTD.Api/MyClass.cs @@ -0,0 +1,145 @@ +using System; +using TYTD.Server.Models; +using TYTD.Server.Functions; +using System.Threading; +using System.Collections.Generic; +using System.IO; +using System.Reflection; + +namespace TYTD +{ + public abstract class Api : IDisposable + { + public Api() + { + + } + public virtual void OnStart() + { + Console.WriteLine("Extension Loaded"); + } + internal string storage; + protected string StorageLocation { get { return storage; } } + + private System.Timers.Timer t = null; + protected void SetTimer(TimeSpan timespan) + { + if(t == null) + { + t = new System.Timers.Timer(); + } + t.Interval = timespan.TotalMilliseconds; + t.Elapsed += (sender, e) => + { + TimerElapsed(); + }; + t.Start(); + } + public bool TimerEnabled { get { if (t != null) { return t.Enabled; } else { return false; } } set { if (t != null) { t.Enabled = value; } } } + protected virtual void TimerElapsed() + { + Console.WriteLine("Event Fired"); + } + public Api AddItem(string id) + { + Downloader.DownloadItem(id); + return this; + } + internal void SendDLStart(object sender,DownloadStartEventArgs e) + { + if(DownloadStart != null) + { + DownloadStart.Invoke(sender, e); + } + } + internal void SendDLComplete(object sender, DownloadCompleteEventArgs e) + { + if (DownloadComplete != null) + { + DownloadComplete.Invoke(sender, e); + } + } + public event EventHandler DownloadStart; + public event EventHandler DownloadComplete; + + public void Dispose() + { + if( t != null) + { + t.Dispose(); + } + } + } + + public class DownloadCompleteEventArgs : EventArgs + { + public bool RegularFile { get; set; } + public SavedVideo Video { get; set; } + + } + public class DownloadStartEventArgs : EventArgs + { + public bool RegularFile { get; set; } + public SavedVideo Video { get; set; } + public bool Cancel { get; set; } + } + + public static class ApiLoader + { + internal static List apis = new List(); + + internal static void DownloadStarted(object sender,DownloadStartEventArgs evt) + { + foreach(var api in apis) + { + api.SendDLStart(sender, evt); + } + } + internal static void DownloadComplete(object sender, DownloadCompleteEventArgs evt) + { + foreach (var api in apis) + { + api.SendDLComplete(sender, evt); + } + } + public static void Dispose() + { + foreach(var api in apis) + { + api.Dispose(); + } + } + + internal static void Load(string dll,string confpath) + { + var asm=Assembly.LoadFile(dll); + foreach(var item in asm.GetTypes()) + { + if(typeof(Api).IsAssignableFrom(item)) + { + Api api = (Api)Activator.CreateInstance(item); + api.storage = confpath; + apis.Add(api); + Thread thrd = new Thread(new ThreadStart(api.OnStart)); + thrd.Start(); + } + } + } + public static void Init() + { + string root = Path.Combine("config", "apidll"); + string appconfroot = Path.Combine("config", "apistore"); + foreach(var dir in Directory.GetDirectories(root)) + { + string name = Path.GetFileName(dir); + string dllpath = Path.Combine(root, name, name + ".dll"); + string confpath = Path.Combine(appconfroot, name); + if(File.Exists(dllpath)) + { + Directory.CreateDirectory(confpath); + Load(dllpath, confpath); + } + } + } + } +} diff --git a/Site/Properties/AssemblyInfo.cs b/TYTD.Api/Properties/AssemblyInfo.cs similarity index 96% rename from Site/Properties/AssemblyInfo.cs rename to TYTD.Api/Properties/AssemblyInfo.cs index 9e5c2be..58b295b 100644 --- a/Site/Properties/AssemblyInfo.cs +++ b/TYTD.Api/Properties/AssemblyInfo.cs @@ -4,7 +4,7 @@ using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. -[assembly: AssemblyTitle("Site")] +[assembly: AssemblyTitle("TYTD.Api")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] diff --git a/Server/Functions/Downloader.cs b/TYTD.Api/Server/Functions/Downloader.cs similarity index 90% rename from Server/Functions/Downloader.cs rename to TYTD.Api/Server/Functions/Downloader.cs index f0c05ef..e7e1368 100644 --- a/Server/Functions/Downloader.cs +++ b/TYTD.Api/Server/Functions/Downloader.cs @@ -1,23 +1,22 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using YoutubeExplode.Videos; using YoutubeExplode; using System.Net.Http; using System.Net; using System.IO; -using TessesYoutubeDownloader.Server.Models; +using TYTD.Server.Models; using Newtonsoft.Json; using YoutubeExplode.Videos.Streams; using YoutubeExplode.Channels; using YoutubeExplode.Playlists; -using youtube_downloader.Server.Models; + using Dasync.Collections; -namespace youtube_downloader.Server.Functions +namespace TYTD.Server.Functions { public class Downloader { @@ -26,6 +25,8 @@ namespace youtube_downloader.Server.Functions // TessesYoutubeDownloader.Server.Functions.Downloader.DL.DownloadThread().GetAwaiter().GetResult(); } + public static bool DownloadIt = true; + public static bool RedownloadIt = false; public List infoQueue = new List(); public static YoutubeClient CreateYoutubeClient() { @@ -47,7 +48,7 @@ namespace youtube_downloader.Server.Functions return new YoutubeClient(Http); } - internal static VideoDownloadProgress GetProgress() + public static VideoDownloadProgress GetProgress() { return P; } @@ -56,20 +57,13 @@ namespace youtube_downloader.Server.Functions static HttpClient Http; internal YoutubeClient ytc = CreateYoutubeClient(); static VideoDownloadProgress P = new VideoDownloadProgress(); - const int NUM_WAITS = 10; + const int NUM_WAITS = 5; static int WAITS = 0; - Progress DownloadP = new Progress((e) => { P.Progress = (int)(e * 100.0); P.ProgressRaw = e; SendProgress(); }); - public static void SendProgress() - { - - if (WAITS++ < NUM_WAITS) - return; - - SSE.ServerSentEventItem.PushEventAsync("progress", P).Wait(); - } + Progress DownloadP = new Progress((e) => { P.Progress = (int)(e * 100.0); P.ProgressRaw = e; }); + public List Queue = new List(); - internal static string GetQueue() + public static string GetQueue() { string q; lock (DL.Queue) @@ -115,7 +109,7 @@ namespace youtube_downloader.Server.Functions } } while (true); } - internal static void ModQueue2(string mvto, string index) + public static void ModQueue2(string mvto, string index) { try { @@ -204,7 +198,7 @@ namespace youtube_downloader.Server.Functions } } - internal static void ModQueue(string mvto, string index) + public static void ModQueue(string mvto, string index) { try { @@ -294,7 +288,7 @@ namespace youtube_downloader.Server.Functions } } - internal static void DownloadChannelOnly(string id) + public static void DownloadChannelOnly(string id) { ChannelId? v = ChannelId.TryParse(id); if (v.HasValue) @@ -326,7 +320,7 @@ namespace youtube_downloader.Server.Functions } } } - internal static void DownloadUserOnly(string id) + public static void DownloadUserOnly(string id) { UserName? v = UserName.TryParse(id); if (v.HasValue) @@ -428,11 +422,21 @@ namespace youtube_downloader.Server.Functions if (canDownload) { + DownloadStartEventArgs evt = new DownloadStartEventArgs(); + evt.Cancel = false; + evt.RegularFile = v.RegularFile; + evt.Video = v.Video; + ApiLoader.DownloadStarted(this, evt); + if(evt.Cancel) + { + DownloadIt = true; + goto nope; + } + redownload: try { if (v.RegularFile) { - await SSE.ServerSentEventItem.PushEventAsync("start_dl_file", P); var req=await Http.GetAsync(v.Video.Id); long? Len=req.Content.Headers.ContentLength; Uri u = new Uri(v.Video.Id); @@ -465,7 +469,7 @@ namespace youtube_downloader.Server.Functions byte[] buffer = new byte[4096]; int Cycles = 0; IProgress p = DownloadP; - int CYCLES_BETWEEN_REPORT = 5; + int CYCLES_BETWEEN_REPORT = 1; using (var srcFile = await req.Content.ReadAsStreamAsync()) { using (var destFile = File.Create(filename)) @@ -482,14 +486,13 @@ namespace youtube_downloader.Server.Functions Cycles = 0; p.Report(Pos / Len2); } - } while (read > 0); + } while (read > 0 && DownloadIt); } } - // DownloadP. + p.Report(1); } else { - await SSE.ServerSentEventItem.PushEventAsync("start_dl_vid", P); switch (v.Resolution) { case Resolution.Convert: @@ -540,7 +543,8 @@ namespace youtube_downloader.Server.Functions double myP = (double)pos / (double)len; myProgress.Report(myP); } - while (read > 0); + while (read > 0 && DownloadIt ) ; + } } @@ -551,7 +555,7 @@ namespace youtube_downloader.Server.Functions { long pos = 0; long len = 0; - using (var destStrm = System.IO.File.Open(mypathaudio, FileMode.OpenOrCreate, FileAccess.ReadWrite)) + using (var destStrm = File.Open(mypathaudio, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { using (var srcStrm = await ytc.Videos.Streams.GetAsync(best2)) { @@ -579,18 +583,25 @@ namespace youtube_downloader.Server.Functions double myP = (double)pos / (double)len; myProgress.Report(myP); } - while (read > 0); + while (read > 0 && DownloadIt); } } - File.Move(mypathaudio, mypathCompleteAudio); + if(DownloadIt) + { + File.Move(mypathaudio, mypathCompleteAudio); + } + } IProgress pa = p.Video; - pa.Report(1); - ffmpeg.mux(mypath, mypathCompleteAudio, mypathIncompleteConverting); + if (DownloadIt) + { + pa.Report(1); + ffmpeg.mux(mypath, mypathCompleteAudio, mypathIncompleteConverting); - File.Move(mypathIncompleteConverting, mypathComplete); + File.Move(mypathIncompleteConverting, mypathComplete); + } } break; case Resolution.NoConvert: @@ -631,11 +642,16 @@ namespace youtube_downloader.Server.Functions double myP = (double)pos / (double)len; myProgress.Report(myP); } - while (read > 0); + while (read > 0 && DownloadIt); } } - File.Move(mypath2, mypath2Complete); + if (DownloadIt) + { + File.Move(mypath2, mypath2Complete); + + } + } @@ -677,23 +693,45 @@ namespace youtube_downloader.Server.Functions double myP = (double)pos / (double)len; myProgress.Report(myP); } - while (read > 0); + while (read > 0 && DownloadIt); } } - File.Move(mypath3, mypath3Complete); + if (DownloadIt) + { + File.Move(mypath3, mypath3Complete); + } } break; } - await SSE.ServerSentEventItem.PushEventAsync("done", v.Video); - ffmpeg.on_video_done(v.Video.Id, (int)v.Resolution); + if (DownloadIt) + { + DownloadCompleteEventArgs evt2 = new DownloadCompleteEventArgs(); + + evt2.RegularFile = v.RegularFile; + evt2.Video = v.Video; + + ApiLoader.DownloadComplete(this, evt2); + ffmpeg.on_video_done(v.Video.Id, (int)v.Resolution); + } + } + + if (RedownloadIt && !DownloadIt) + { + DownloadIt = true; + goto redownload; + } + + + DownloadIt = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } - System.Threading.Thread.Sleep(4000); + nope: System.Threading.Thread.Sleep(2000); + } while (true); } @@ -780,7 +818,7 @@ namespace youtube_downloader.Server.Functions } return media; } - internal static List GetQueueItems() + public static List GetQueueItems() { return DL.Queue; } diff --git a/Server/Functions/ffmpeg.cs b/TYTD.Api/Server/Functions/ffmpeg.cs similarity index 98% rename from Server/Functions/ffmpeg.cs rename to TYTD.Api/Server/Functions/ffmpeg.cs index 647c4e5..819622f 100644 --- a/Server/Functions/ffmpeg.cs +++ b/TYTD.Api/Server/Functions/ffmpeg.cs @@ -2,7 +2,7 @@ using System.Diagnostics; using System.IO; -namespace youtube_downloader.Server.Functions +namespace TYTD.Server.Functions { internal class ffmpeg { diff --git a/Server/Models/InfoType.cs b/TYTD.Api/Server/Models/InfoType.cs similarity index 91% rename from Server/Models/InfoType.cs rename to TYTD.Api/Server/Models/InfoType.cs index fe03aec..ff5c51e 100644 --- a/Server/Models/InfoType.cs +++ b/TYTD.Api/Server/Models/InfoType.cs @@ -2,7 +2,7 @@ using YoutubeExplode.Playlists; using YoutubeExplode.Videos; -namespace youtube_downloader.Server.Models +namespace TYTD.Server.Models { public enum InfoType { @@ -17,7 +17,7 @@ namespace youtube_downloader.Server.Models { public string Id { get; set; } public InfoType Type { get; set; } - public TessesYoutubeDownloader.Server.Models.Resolution Resolution { get; set; } + public Resolution Resolution { get; set; } public InfomationQueueItem ToInfomationQueueItem(bool download=true) { switch(Type) diff --git a/Server/Models/InfomationQueueItem.cs b/TYTD.Api/Server/Models/InfomationQueueItem.cs similarity index 99% rename from Server/Models/InfomationQueueItem.cs rename to TYTD.Api/Server/Models/InfomationQueueItem.cs index f358d08..8480329 100644 --- a/Server/Models/InfomationQueueItem.cs +++ b/TYTD.Api/Server/Models/InfomationQueueItem.cs @@ -6,12 +6,12 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; -using TessesYoutubeDownloader.Server.Models; + using YoutubeExplode.Channels; using YoutubeExplode.Playlists; using YoutubeExplode.Videos; -namespace youtube_downloader.Server.Models +namespace TYTD.Server.Models { public class InfomationQueueItem { diff --git a/Server/Models/SavedChannel.cs b/TYTD.Api/Server/Models/SavedChannel.cs similarity index 89% rename from Server/Models/SavedChannel.cs rename to TYTD.Api/Server/Models/SavedChannel.cs index 69d8979..63aa0c4 100644 --- a/Server/Models/SavedChannel.cs +++ b/TYTD.Api/Server/Models/SavedChannel.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using youtube_downloader.Server.Functions; +using TYTD.Server.Functions; -namespace TessesYoutubeDownloader.Server.Models +namespace TYTD.Server.Models { public class SavedChannel { diff --git a/Server/Functions/SavedMedia.cs b/TYTD.Api/Server/Models/SavedMedia.cs similarity index 56% rename from Server/Functions/SavedMedia.cs rename to TYTD.Api/Server/Models/SavedMedia.cs index edfbdb9..d093480 100644 --- a/Server/Functions/SavedMedia.cs +++ b/TYTD.Api/Server/Models/SavedMedia.cs @@ -1,7 +1,4 @@ -using TessesYoutubeDownloader.Server.Models; -using youtube_downloader.Server.Models; - -namespace youtube_downloader.Server.Functions +namespace TYTD.Server.Models { public class SavedMedia diff --git a/Server/Models/SavedPlaylist.cs b/TYTD.Api/Server/Models/SavedPlaylist.cs similarity index 95% rename from Server/Models/SavedPlaylist.cs rename to TYTD.Api/Server/Models/SavedPlaylist.cs index 46c5382..60f3741 100644 --- a/Server/Models/SavedPlaylist.cs +++ b/TYTD.Api/Server/Models/SavedPlaylist.cs @@ -4,9 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Dasync.Collections; -using youtube_downloader.Server.Functions; -namespace TessesYoutubeDownloader.Server.Models +namespace TYTD.Server.Models { public class SavedPlaylist { diff --git a/Server/Models/SavedVideo.cs b/TYTD.Api/Server/Models/SavedVideo.cs similarity index 66% rename from Server/Models/SavedVideo.cs rename to TYTD.Api/Server/Models/SavedVideo.cs index 61754e8..5a902f2 100644 --- a/Server/Models/SavedVideo.cs +++ b/TYTD.Api/Server/Models/SavedVideo.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using youtube_downloader.Server.Functions; +using TYTD.Server.Functions; using YoutubeExplode.Videos; -namespace TessesYoutubeDownloader.Server.Models +namespace TYTD.Server.Models { public enum Resolution @@ -22,6 +22,16 @@ namespace TessesYoutubeDownloader.Server.Models } public VideoId VideoId; } + public class Chapter + { + public Chapter(TimeSpan ts, string name) + { + Offset = ts; + ChapterName = name; + } + public TimeSpan Offset { get; set; } + public string ChapterName { get; set; } + } public class SavedVideoObject { public SavedVideoObject() @@ -41,7 +51,34 @@ namespace TessesYoutubeDownloader.Server.Models } public class SavedVideo { - + public List GetChapters() + { + List chapters = new List(); + //a line should start with time then be followed by info + bool found_0 = false; + foreach (var line in Description.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries)) + { + string[] splitLine = line.Split(new char[] { ' ' }, 2); + if (splitLine.Length == 2) + { + if (found_0) + { + TimeSpan time; + if (TimeSpan.TryParse(splitLine[0], out time)) + { + chapters.Add(new Chapter(time, splitLine[1])); + } + } + else + if (splitLine[0] == "0:00") + { + found_0 = true; + chapters.Add(new Chapter(TimeSpan.FromSeconds(0), splitLine[1])); + } + } + } + return chapters; + } public static SavedVideoObject CreateFrom(Resolution res,YoutubeExplode.Videos.Video v,Action downloadThumbnail) { diff --git a/Server/Models/VideoDownloadProgress.cs b/TYTD.Api/Server/Models/VideoDownloadProgress.cs similarity index 54% rename from Server/Models/VideoDownloadProgress.cs rename to TYTD.Api/Server/Models/VideoDownloadProgress.cs index 0b2b883..7f08eaa 100644 --- a/Server/Models/VideoDownloadProgress.cs +++ b/TYTD.Api/Server/Models/VideoDownloadProgress.cs @@ -1,10 +1,10 @@ using System; -namespace TessesYoutubeDownloader.Server.Models +namespace TYTD.Server.Models { - internal class VideoDownloadProgress + public class VideoDownloadProgress { - public Models.SavedVideo Saved { get; set; } + public SavedVideo Saved { get; set; } public long Length { get; set; } public int Progress { get; set; } diff --git a/TYTD.Api/TYTD.Api.csproj b/TYTD.Api/TYTD.Api.csproj new file mode 100644 index 0000000..7b71d71 --- /dev/null +++ b/TYTD.Api/TYTD.Api.csproj @@ -0,0 +1,102 @@ + + + + Debug + AnyCPU + {B859C3EE-A821-4C36-8A55-729E79194CF4} + Library + TYTD.Api + TYTD.Api + v4.7 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + true + bin\Release + prompt + 4 + false + + + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + ..\packages\System.Text.Encoding.CodePages.4.5.0\lib\net461\System.Text.Encoding.CodePages.dll + + + ..\packages\AngleSharp.0.14.0\lib\net461\AngleSharp.dll + + + ..\packages\System.Text.Encodings.Web.4.7.1\lib\net461\System.Text.Encodings.Web.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + ..\packages\System.Text.Json.4.7.2\lib\net461\System.Text.Json.dll + + + + ..\packages\YoutubeExplode.6.0.5\lib\net461\YoutubeExplode.dll + + + ..\packages\AsyncEnumerator.4.0.2\lib\net461\AsyncEnumerable.dll + + + ..\packages\CookiesTxtParser.1.0.1\lib\netstandard2.0\CookiesTxtParser.dll + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Site/Site.csproj.user b/TYTD.Api/TYTD.Api.csproj.user similarity index 100% rename from Site/Site.csproj.user rename to TYTD.Api/TYTD.Api.csproj.user diff --git a/TYTD.Api/bin/Release/AngleSharp.dll b/TYTD.Api/bin/Release/AngleSharp.dll new file mode 100644 index 0000000000000000000000000000000000000000..dc5de06fe57dd58f834be3c7eb35adc528e9e417 GIT binary patch literal 829440 zcmce93z%F*nRd@P-KTqcu05CTB$LpS%S=wDr)QEG5|RwL6GDIhNeIjkAcSyBARN+7 zxDDM5B1DA1B8!NK+yq2KL_|bHL>7@%L}U?>i@J!2h={JThz$SxepRRIoCbFP-T!(1 zd6HB0*7sJ`SNA$~s;bu<@lO#u5{X3d|NZwPk#EA}-%@%0*N-uX8?)bPjC{TJiK*YL zIq-?8hn}>x*m+vPJF&2Nd*_zTr=IGa-g)ftorRsJc5XejbDx9PcW(ENJHD@>Avr?_ zeaOm4 z3E=$#e)>*7{;bo1Cts)2#k4~2;9qAXa!g;LSl9wb(T!Sje^k?%egjok2BJW?yJ=5Y+tKW5-Z+V-$Uha!<=56r!3 z9%i|VU|M#G&Q`P}u8~OVY&!y%NKGV?vUe_tL^_gAZ@;^kBniQhrw2*0H{&i9clvcC zTyGhyJ?WmGcK&$B)I&OFZP;+j5dqI0(wQ9A&c?5|g3djyv*VFZAZ}!Ls;vMGPMfg1 z1*&wVRn*CrNK4IlJHqIQU&?2`Z3m6ImKu$t-EFzL@iZO1eGukNT^W_$`WCCj9&blH z9krM839mF7T5OHAS2`-ME?R)(*S<6tR`N@r+)LM<_o;3{8=6gu}G2ff<#wuSME3m9&%jzesx}0juDj1&_KEEO1k2{l(>>bc#1gXQ%%bhX&ugm>t z%kIiM-7eyHyi@QG+dC1wsKf&XS~|m~;cbSXlq3zsh>kScGYt%}z`++V z%%1%%Hw|`I-tKPe@rI!*{V)`o5*18piS}kkwxiC$UrMRx9SH4`>AKuO3dcRv$z*+E zC-So67CstkFQt*6nb?UO=xB|mqP}Hr`IJ zsaVhA?0E4I2)nEjYI;)De>*Y*x*#i4R;E)T;XK z!o8^D#bLOd(_CY9<>TFL?lh30n%l>eqmn@#+i5HAZiqN_Ry^t*&yrOAGe+PD3Q~vl z*hhwCw?xL<5pIp+=BUbVRpieGJ=kql-fqjaSW?Hj^6Um<-ZVt!9%!*P&QytLooz)> z;2g(NEfK2}M{-*tsK;VPO9?UE5u~XU6MK6p3ey=SLJ!>%anZNsS|aDt!QBXA&&QNP zzYHnlejG7IU6=8G8jWHd)Nu1aO1Zcl^?uh*#9Tvnl|$3v2rE@S*J9h=YG`kJU3hwJ zC=G;hECZ8rW1T^}Nfp=Xa;t+jmWL*gL*cDs;T;9lT-3vys+X43%SQOIT-3Il<<3E9 zNu`bBc>gZSpsU!#BrUf*REwPS9mmiC@pT~YCc|uEnHABNlgXD-C{&IXj^*|m7b1LkPgx#Pm-CKiB)K-nI{}uu zxO6Sa-e|o3rL^OraV7J=c?km+)Mw3pp{*wYMH#<^67K9}RgFZ>uv{b?X~&Jn*7!@^PQD@KB;3Cvpk6x_P1dSpeCwrT zZLd?SlHv5E;+1qviR^!(O2>dz&eWjJEr4H$EBS@F1@a4t&UxDrljPT_urR-FXhS^z z!~8-KA=x<>;j)Oz6BsGxMk-%a86mq7Cu!bkew;gWoZD*t=W(JG5G2Zo-M#Jo8X1Yc z(TbpqBk12!g*VZ-?BYz;cFS>NXcXPd19I4hftRwQ#R7Hl<&IYbWCN2yuhI^>!N=H= zN++#4-8VO&Y?n*fwvE@ILM4Eg2}UFwUpn9iy(awFg?FKfF2FYQd$z-xfXtyTtH9%* zAFf@ft?}8G)ngahE3n>T^+rv!x+&&H%S)H6%HjXLeKRiE&fAXt+SoT zU=34&cBH4*T??~t>CQIk*Au=s(G8D5t`_Bgi{Xc$B!PE95nnTf)4J z__?Pu`;5@ivx^HjT*~s4i`D){nNIZ zq0|)&&*E5|Qv!E2BPpw(HU@)IBo{@Q>-ir=j?q;|{*m5J4n$-trQP2DnKwVF7z=f5 z+dd=_wn`t{6khNmsA;JW=A%}i4gB?NN7C{A16^~>OPF#;)?(gVHjl&I*WJZl&^DJ9}6g~%*Q#i03`QL|+QSJXW zd}RqhkSKE$sC`@0>@lMWS7FF0(KLqv1SGG zfPcDQlqp0BnG&^>6+J26o={z*cqc`PMXgu~6^E}tbabyl9+!~Y(aO?=Ww*JvK;u$p z$TeyQT&0}QEy``>{(Gnl9Q;Cw&L?Tt{*rU`#DPxaPHKm_Dib@kL z@d3Z6B+(Kduv1OZ6?Udk5{iDUc)rSD?=obJ0&J(>fOegzA1b9~ba+uUOrj^GcVQ+S z5B0`bcnQdkhpO)M=$!d1Tfv!9x#}#@PrWxCrRD1oS-vfuC5cu6wZ*ju<){d8Rae{CT|@b3&k>fSySF|NEml5yq+&Sf@ftFjS@P~G7C11+ z#6c`N!DO;{dQP?T39C(t3PXF^_O5{1?%hayH{Zmsge9nGOQD2rR=a!()LcwzmrFb6 z84lZW1Z|q{PI@AXhKo5d15Rh$J0)mD&tg`6*njOOldkx2zraE{)>11660sGiiU^cd zOWH$B-UmKPkBobluLf%#=5zlY|0_P9O$Gd@%)34izDj1sz0Iey-ZNkRyYRm%9yp)t z#cYOus(|u#I@io%z~Uea%=>3pJ9mSF+Q7hr1Y#j<_8H8NAcHu}V0skeDv5+R%wP@$ z!ypbbSd_sqh{Ft4#$Xu4VFqhwkU<<~u%QMS#EK#Faj3=lcFMB*+U%VvWT4EJ9rs3L zEt&}jO!fuel-$KUcmeWU=dvw%D_z2Z&x$LvQgvO*6|ci|{RRnO)MYrblzs)JLkF4a_3Kc}3qF2h8sE>4_~j$)E+gNDCN0Gr?5R}Wvfx{iP8Oi_Oufwkj|(q@ z&;B;!y3y?|j*qD4VWj(zujPs^4WB$FwtoSv=Ouq%&)! zR<|M#Z1-z;V!&XhhUr{9EiIm1u;l$3_~V}*dZ`lzD(1OA;4!iOAjcH=gCf)T5u-A~ zqfQs1T=6cEil!HPu-a+wYAE6U1PU!U8V;G{{6pyOhMbvc6j%J2qX_q~IPdqz)aKZqrF#3`3+$Z3zcV8RM0X)yKqg|QdW=q_3i~3Nf03nB2M`yO|KE@Ce zm?8fY^zBAO%~mwFWbgOie?O?0e&2{iHlea~vrS}V0v3%89n9*clAA=!oZEy})z=MM zUw-~w$O<&TJ_wHN+hhI>fL1UA6j14n#xf&)XHeRuQZC}E>OJ`b)qI38^{;1yl9}0s*?y(t5|&lp zgi6^^`|R}W68CwgVCo08V8ai!l&G&mrsvk&RILaCQ4z4}MPu$A)EBX{mF5lnkb8%&9uo7yHT`SY;c;S4^@l-#F zXp-|EK@9M_aBy-WKT-RYrrHqqKFc~Y|3<~=8XT7Dx~`Hrs=6+(WQoE9SYocKt{>tM ztg0&ze=s-mi>XjwC!W*$n($oGSDT8uk29m|;#lvLx}2+zA}06iaAj`kn*9efV>P$# zMgxzf)%;TCfSmffl83rjSVEP8s866uPe`C5wx$HIFd!cFGO0zoqH34NCizHEuv!GWx8LgZDZ78X$ z1~r=7L}iYqZX@%rg)D)LnL*w5Ph>ZathC|e;6Gm5`Q0~?J13pYosmiA3Qpd$NclBlCD5**4Vf)(S?$3~p-nhh{Lk6Se zJjveO8F9Y>i5hX$EbeN&?CBRAp)`_r}YZrNbkfX;E|D$to@BIgRL@m@1vbOlu-{DwvE*n0fv79q8znDIbZ! z`Kh=}%_a=?rQ(4JQg1dD&!}Ge+`-mVJc~x@q4P?%BC?y9k??pk%$$w*Qi5Sh;zF@*ou<21^os^jbaaHnAB*O`jxo~;%iZ~UGO{;GPm#c}j( zwKCJ_wh9-c6OZ$aASrW8RLB{AEnG6lKFG{M6i|b(9_OPGtT#q_kvg@ehA-C3wD)?{ zqXs{y>8vT~x;Q>pyFXxUNIHp%ikOvDsW|X}Kd0c_Jf62Q{?L6lJj;9BLd0w4Qn^kY zQ(e5bIj-ty^;~7(1wT+u;{Er$!x2s%`dj5TxO!N}QUhbME?u9S6HiDEH`HcpM^?r_ zP3ZqHqS5rC8^P>?g5=HtDNBIauVR?8pNG6@jwjzdfL+(f? zafJ-JU4ttU6Ncg5Kja{&E7Ty^@4!*prz`h=L6q6%Bb0z(_^H+?SoQGZ&2%i(a1XJ)DNAI_g{podP7VK(~j!7Jr!j(Ot-RKlEir8 za`dG&1uQI_#+h;iA`avR!i*3vJ_?CM*XI{@aw zxs7=C_w~}=*Nsk$)73rjT-rAQPd$Qi`g8?t5d?6ERk(Kf-I1<@E(l{Jx*$a^MX%*b(FqP8zW19#vvfggU&5CCRTb=Zk z+1Z2jPTH!KEVwS$=)}>R)cKh8qBb$`G%7?9vtn6~i$*X*lfS~1DBCf1pM|SwV+UTi zp0*Th6L+5@!%g89xZuNC;T|z36dt5G#%^7DKl3P#p#;bHN}SG4MBxcMMb;xa_8d`o3NE(S1XAJoicscLmsjFC zRmJ56;!4CNPIPPewS|}AQR$G+cldeqDjbnV&P`nt3h#)0VjN!)3pEzp+2bX1&4n01 zT%1HJSs~S{rS*jjgtoUGv1-LJ^Fw*@TLy-q$e_swHJOiR_f{24>(Uf=q=i=2nN@bF zR%?5wBVZ2`n`C`1oAB;~r6Dd!5d!MVLnu4l#MM{+=Uz%CdeL>GJd-a(^9hx?`TBSv z4^^d1jz01j&YEVG!Xtg#~!3(%M5w zdj>S?yHJhogJG>hU$du#Rj=q1N_lnb#6^ZFZ65Pj;HhrgUpGcWwe* zz|~NUy+O7colPt|t#1YGeXY6GF!%18i3!*ZNO50tZhmcHNhQB?3u+4o7?i6mj2JYf zwy?#ZrdmH96?F=uJI9`c>VD2d_fxCYQmb1ke=kL>crP$xe8Gx~ws^7FdoCW`eQDVG zhH|SC*~NX`iHe?1P|x{JP|qHxu)}CJ*$Hah=;#P^MdHpiOLQE#P!FtStNah<_cxJg zd2BckBu!s^WWX}#B8YnWir-@gG?hKbIhIWD@tM?ee+bunG`m;M${s$_V`XP!;Ntu7 z0;F{w(mFxo?678q2zFmG4BmRs3n18_LPj}i`>>2QwkfDLv(V`em2?!VHEtIWac z+^4i;62pjD*?s3UYtJY6o-_E|q^4W-R_7SfJRVi?e%?wCM6EsMK)*)%&CY>-=M8{` zH<5_(zV8QOz07idOg$!A@^XyQ%5Lhbx3DG&&8R6f`r?6gxs*axut@sC0wm}xV^2gBEMyvBeIQOl$RHZ%u$xH*U zusR#@a@RLxbw)bz*)WNR@;1xrbOHLNTAj0KPP97vX{M~sO*Cua12ZFu8-+2Og|WcT z5b4i4IEBEUC5y5Pu{i~5O&xN?oG~LMXJY1t zek^8w==);!4t+<=zM*f3*+29ZF&7TqD(2A8=fzw!^l34d3|%JX(xHpQ+%!}cvpjSL zP05wc_n+0NUx>{!aE$y4S@Pt2zT<)7_$T1b_wbG>`Lu8^#f;R@u|_*i(~cG$E$ztV zDTIkV-f+aw@fa$>!vACj!7)n5sCIl=JI3f3(~hW3!gT29Xh*bFag5V3t{uOi9TRj+ zXh+Th7*Q=9Yn5ZZM3*F8lG^2Dy42C7PP>fIrJgSJ+GQ188tBrXUFOoIkuHteWjbA& z=+dNJP;t1Y5H8KiMH)bF2OC~r7a_PWS5$x-Om=!mciC>*|77jd)l*NVmoltxj&4l~NxZq_60o?D*LI6};#{2^*EM zOwbIGyqaL+Ay(NrlUL99z_(IyzIMkGBZC>IRz*Z@y$A8=o-g%T)K82U;lNZYVUWCN z2<-5_178d8M;%MI)}|8aIkiqUuT&8&Ta)S5y6k?f_4Bch37m#>Yh${#37P+XytOgW z+K}tDQVlNVO3BuyR8uNBki@gGKbmT4ZA>+!n%ozWHuZuv+}e<8hz~rOs!KJdk|U{j zs&*tZe8g}oaBC7_&3`(AtPKU%Uze&w%IoIibu7a0mtIFpU2Ai8Mr#Ux^>fnC+y*GLoHcys@=8mCDW-ZcXLxbW+Vh zPMy{gMq<3i{WW~I)+0->MuKumHA?b&>ovsN1#G( z?BhCZjO}fb%v!pB@(*r&dIYhLv5^-41-7nE3!_f9&wErrBl4vJW)hsJB?l9D8mu7L zqQQKEvovTXn5{vIV2%bY1Opnh6U^1%w9bGZ_P`ZCc+E3@@ah)H4r)KA)6bq7>?H6* zJA+`JmYhkjmj-7M%-7&-f(06k5%^l4PvC3)F#=!f3kZA-K2G3ka3O)O!9@hV2D=D+ z4L(8OYj81vufd8b0GqWss|b$O;By3iUhhY6oR+L6I9`Jr2u{#o4S`>BUqwC2o}?u^ z80l6GzDCJ54GyNClQsA?C8ua`2qoJ!IFA9Gs=+!+{7P{c!D(7@4+AJ@@b3gg4Gt&m zbPa|Hc51MZ;0z7!qn|T1c$vVjV&5b8VnMw z(qK=5{WO?Muv&w81p8~S7r_A<%qKWdg9QX@G+0P*kOq4b9IU}&fpdrhi53nYx;PD>5vP{}f0!lT{~V9Pg%PZ{LvUz)50k3%2}`Sr3l(&6ht@&z1F zQ2Qbik-;JLKF{@t^AN{E#9>KKnv|$8S%|k-RZ%rq9^So@qVOE+r2}gvJ%b6$eGT3A zOMBN&5C=|ulLHy03BG10#h3EiUnkC%hnZbcRwUv|H>?OK-I^lD70p@$@{MOHp&Mh? z$$k=6oQHB>N38XU_BjbFo^XE;p!Q+y4?pvmXOc%h0omqvlw?l1*iIL~XGH@iI{WpC zb7rK=cTUfKJ)kGbiSLCo5boXxx1FcE(pLPlqEmgs?vEv!YvM^crDb7E`3+9p6rV!8 zW7MFyh&GnrBq{OE1m@IZQp6`%*m^6|o#>o8OD!YVn9`+t{``~IYETlmR`!Z&R<=K54={3yuAbQUB@{?3=7J7eYQTK!qDP+e7Q(m=dX%713#}-@6?hh z&cH?3O-!9`hfW#lR z4mx$xDI0QHN+*0D^*uH_onuhon55H*xdP0>W+P0%F+oRcn1mG_79JMXI>A|DIB87k5sCW@Jb;YX-=rclAIN1L)#3TvXB8Lk1XWzl zJ3gHIT!3rwY)NFP;nrJ-`4<%i>qSiVJW1TP_dG;NC*99?1-&f@C-BrB(P8feNYxUa zl-(ADy^LW?jg^{{%&0FR1A2wp{Wp{$KI7!4Wa^v*maglwo!8}>(QgR|tz)ZT1|E&~ zCNOi4CNd*f`A$^Uwe84S#J3#r6t9oYlnGaoQ(Yq6Zq;uFSqK+ppwmJ;S`@fPRPzUR}reA;B6*6P#fp%Si? zC+ekqQ?R^WLro46mu=xrHhvne7a+6WJc$r`cuLSl`O}}D|&Y= zv`bZ=QI{htB!7?O0*-o<(SK5OU67f0BSVK(2m3R3Vi;{%e_(aDt`8ghOya`xw zS^_MbBUHtd?R683>m_`Pk^;-;R5ef)dk#Nec`t+8i@l^$nPo{do0qOve;-B103BCW zbd*|Hr_#dQJ+L-$+19>f0(mQyzCZ5$20^Chz{08~8Oaq|i2&QLV7nRaaqks8bLduU zuas)4O5(DubH1Vzz;*Fc{>!-cleis(U=RMk$NM!M@4i;2jb6`XC*=MX4=lw^2_T-( zqHg$-5m-}p{Kat9J;~;J3^k*bp(Y>iD1I4dr_M=W;WLKKHG}x*cBH%%`X7?_Ph_%L zSsTiOFgiF;A#kFk7T-~IRUr<>3%gJ_xtRIh(Va{9AEjlyQN$%@<3K8%S&i8k@bR?;?c!Bv#v%K(NZC@y|AO2*qS|5jr>#-eMhT`q@l(8C zV@xLsWZu9o$NN2;FaUDyb0+j!1-+?I`)lR(X#KXtK%^ zE5K^QlGioV8XiulIK#t<6#x$>Re22hQwykcNh|=*&n7n-8K^ zy40s6MD5sz}4sFc=BfJcO$j@l-fUE6xeL4G__~c zLpeD~ERA?Lx{D3eYLs}36Digs^7NRCzLb=1S&p#>-m=8&hw@OuAK)!i-YrjrI7(gK zh-6~1w0tB?vo4DFn;N+TCM92u(Wc_{xjj&4IlC#N$fF%iS#RZloJm9ZzOt;Fr4DW*7A}z$!DTEK;Gaa=>(ZqCeMG zL9{Ulf7Y!+8Ff%#T`nh&!>eQCXDi0tBmu2%U;gceuP z;}|W{n@0=78Cs@%pj<$~Sl%DlKH1h-7gn=R=}jpSZkl)lLe7$9Hw)?l&*e|_dF~&X zu9q6S)ybnH5S$$Phn(+@{KL8b##w-@)A!bK_XWOvUIlN(H}U8yT!CI+!uI|o7$@^W z_~9!2Lt<7e&3}=Y6-?vTtMGfon~l678pd5!c&G{=T!lAP;WLSkHQ`@ag|Dx|cN1gc z?(6$d6@IP?zfOFd;n&8(cxDwItisEx@R}-od=)NM;ft&A^;P(uD*R{_e!dF7TZLtisP$;n#?_8vff=IF$&?rxR~8{5e(l zfDkSm1&DiL(EXt8?*MRgyS+GIC&_oeqGB)H4y*E8*CimX{XPbPvKL;haO%4Xe*s8n z4h6pb-GIHJ*0^`TUOw5RWv~jbuELwDaIp$sScR{x!Vgs8hpX_D#HSd2Uai9KRpHiT zm_M@$FQ~!?S7BVn5{hqU6~2IYyV2*`Dtvbpeyj>VUxnYO!ggIa{OMJARu$fh_*A3M zQB~Nh!WUNIYpd{GRruj5{A>sp-Ud|lv7xKbP#-z1R@b$TfIT0uuMF6a3fRvJ*cqrF z&J_XoI|BAc1NP?w_BR9eng$b2reZJb1*_7zHQH5J1BCYuHS%r`g7bpliXgZy2pC)? zfIEWV;UIV>2wn|>_kv(bV97(a3Je3baz*Tq3_y#a-LjGshT;fIv? zT^L0b@Ny8m69f&-0a}*4FY?#}#hw>)B z2Ptf-$XhYQ5T)w0p2Z;8MQ_LW-Y|)+!nal7`>ODxAzXMCP!|S9tv7*E^*UOLG$`QW zH=l+MCkvEn&@_rPDC}iuja`CLjhc2aX+H1(3VZ}|q;Nq6w>EVNN;QdRO#S73ksFry zmoC1A`T7{A{F!v|&$M$^p4N8G$O~6g0vkJu_-2ETCT0auk&m$q3d~lGk0It1 zhzgwBXv`T;f%5~6Icq3zeAbwwc7fxg#vC;Z9FH{Ss1@iF#yn!qeYG4*ozcR*Cckz7 zyVEgk8sj?~HVWFM(_z82B0FisN@vg+>lSpSNoShk-mOd=C^$ngl-wSEN(t=YB5s`G zk^ss$8o|;?St3*qYi1)*cz zUjhgw^cV$(H*>wzl6xeeC+-C8!25Y`t$hp4Bu}Z~SPK?UoStuJEhMPHDLTI-BLJUpbSWvmagC=*_WlZn@*H+Uc8I?&_&Z4Q1J%Cc7C!ia z>~HWUM8+Lc7Qb#PF^U-lpDbQ`vPLkQ%UeUmo1gJbs;~q~TX-DP(otQ-J8!J0b z&nK-NlO>b(2IAKrTRFH2w-E!e#(1hiZ~Y+oaDLWp2o_a#GRprONv|G>~jV z`(`fSDj9s&Nqg_Yy*{qL2;y2)W?`)?y~+lI)@W@SbHUGmrIJGQ4I9TSxr+pjPIbTuoVBZ2(VU3itoXG4zh}h$bCCv`Hl(&clYI|>jaKh zbdo(7`n+D7l#k?bRK7Q?kUVA}0p+l6D>0*TP*R63OZ16*rtB=KdfVLftO3=$B+j<7 zu%%=N99e5d3DU_4gn^pOI*rauulq7KTrM^o@I8C74&7Ed=um9Q<{qVmEn8Vax@b0P zL`4sr!u=641veHdMRX82EVeD`u4R1`eJp-ojvRt~;r*x`IBdlGQ74P(zK;M(lf>R$ znh4VwB~tgI4&hTg?nR}8TT{axN~LcdO#Z1{N)Nco5>Txly$AJF0^7s)Pnbv4gtN@ zJ+aVT@?nPfwM*S%MoV2{s&J=^y}dLIrZY;U!d;}or9&uO<}bdzO1M4Z*DmG6RN>7M zdwU6&w<0_u72aYM9vwpAas1_ShSl6~;7mtL|`@AZElM(%ciC3dohH@+u}B`>hSExVbEb7(uJ!##%pxH z$#dgJT!cA^9B7L8yLZ5W3@GmrAm`a$TBTLU+$$6T`m@mtwLV zp=0A6`sg$1ge%eAc~Gr2+JaknVabf7rJW#nUyeQW0Xee57lb^Hpi^X=-g40Eo%pbt zxXh_lCT=9)Sy^_1s{UajCx7bvLH-1uz1VDJXZ9Uw;d+?Et!!`KIt$+}*H}0axu1mt zkt=ZGq;Ii>4;2e=QlW283*R{Vc`^liVVCxGS=kwVojk_TVP&z+$jZ*bX$Y+U<5Wi% zPj&nozQ|!(!93uW8vd!n9}6)%!uN@VL$8auY3OB|o!`Z?^JjRdqX0h^$Dh;jZxzS; z#Sz0|q!R}TH1iAMcp9SVEa9QNUoMX4(eeGPcH{>C`cAks;GsS$V}t)`bh&)0@4^lK zy>NLGlTXFL2LGDb4Ch(jg&X|Q>6*h3=-@lUCn0dc1>xct#QXjs0G${3Rw{p%djtwD zzepd)nalE+%>u|-o%ey!$1?*qBJuE0iXg}(op4!-hqxd}>08iOs5&l#V0z9ROCNk^ z6ur}N;REh*RNsAZC#PI9A>Y>Yx0#nY`Qw}!otW%nL*dAWprq42h>|=KetMkroW4-7 zo!D5@ravUPey|vncpv%i7`zJInX}ZwzPe#`{6 z%KenbeDXZz9gtbB1^F?TV7=}FTD8X&$jvez(#%4QQ*Nod1ipMd} z*#EpHv9s=9g|=9%1-Ywydn^(y_o2&_%V6`cj60|C?Cdsf*Bhh6!^Iz9ewobvFms1t zQlgo6kcl5U2!>fOOiDEKOJvRoGmC~viDphAb0Ew--7qN;W{G*B59i?>LbQ&iUC9J& zi7HdKXy;tL0 z1VfE&xd*^*x%=ap_Ue#H=XB z{rV=Ii7%#!3rYigH;D*pz6-BsXI$QSa+H}r0y_-P%p5@Q^m&m#Db`HW0qIDG0Upmm^nc= zHTT4thWz<^NlF;PQ0cnzo!w=8hg0Ra5SDT00_IOMi+PNa(k)~bQ*bEVN^5q&oy2N{ zns^(qR86t)`*;^(8DSo9r9|%!w?^sD_F51`a0@uwn%ZX_jie{}d%!L3-T25bP;Zmn zRe|_nWI9wB^Q=*(&gR|04vxwy6y?RXdTt+!U`oYz=v49JNG)DdN_!)zMeG;B1$(1R zvF+j2GugYJWyifVZ0=N~x!y_OnqTY?cA~|j@hmNZFUuLF;o-QYlfdQ17c&1c@WL%6 z_^Aq!_O!XnP#;3RnSSOO)4TCQ^NjmRlGWShKagjf>#s%_MD|f*>in@8%A$b^JZ-yZok*0u!Z8J9l z7x6Zpthc>0VJ~AnH0oh{NwNVKBEzAx4_!^45BdQH)9GZQ{5W}?;B}WJC~VF0us0)_ z#_T(u-sVk%JyFJ#PP2-iW6YN1er*x+X~(;PE{^wk8gcInG!ouTFgQoCBh#RJBXw6r z=1qYFw{+sp2P!Q=J02DmnOO3tYrakh=6umMcLg#Ao^XYYcLsbp-X08pp;exb{=iPV z_=*#R;~FjqOEnZJ;!@>xv@WmxrA+J+)@V^~(b558s`A=T?CqshF!9qoc&hTk9E0ze zbWr7mgX;Vto4^kneG&Szk^1KC#2iP&0>PJj2eH864&Om6*kT-YCor|h7oN=+gSiPh ztCCQ^XUL9x>5bT(g{ zg}_SpB2l`dI~2Jk)1URQj5}Aeq4t2&HAYG48)O!9bSVD@cC|$IHQ2mfar_Cah3Qz1 z6kNibSu)r+8IxqNSoXEcs9Vu85+8N{!LG+I_hWRqAC5@bPKU*emPW)><$jph+e;f@ zI-^9Y+*hh{r$eZnV%<5i8R7l}3l=qURHLv2in@6!u72>t^3W2o!@jrM@z4yDg^f%J z)@DJ#Z+lr#Z&$@f~oIH z*!-!RW?YX-4-fHX4F1qfWt*fo7m-VUkVNa1P}v3GZYO-EtaJf!sd}to5{%TaPwHV( zO`!1-oOD;QT6O*_RCQOt%7*n#CWZ}4EO5ZPqH+)m9KPi{hy@N0_zq&h53=lsu=ryi zxtKeS46@vP;o#wYT;8E$>NoQcsXuPZPbgf8j8;FPPUloZ>?-3WHd?rmCCfTn z`Yz>Z_b_TNx#K#hM_SRC!exKtB|1>Y7cxVy$1&5k8KYEXW zb)ikcwa&O6LDxndXiNo)usSeD+6HqA%X%+dL!VUPwO4#%>DI$d!sskIPeMk&W~o;LkDsKj^WLdSGCSezYE_ z58w9dgIM6e^2B<$)NuDG>OW5b+dYy9l<)X{!~%zhdGl$lSX9DB-yX4}>@7OQn z-~n3*%G>7e`>->`dyh!){;&Wd{LU6G?^wi&X_vkSuXs&)m`1Gh2#v;Q>0cNil<-Zu z6O)aPJ7RhZ5!OU}F2biJx(l9yJ4X!a=)i^|ZZ2+h*E+N!!J={ff4$Xk-6axP`WV zr|k~fUZ(8<+Bmiqo}%p)+G;bf{g$>a+FqqCPuuTkTR_`uv~8sA_q5@1%+tnRr|o*$ z{y^Jfw7o&w%e4KGwl`>dleYJ0`x9*wC&2a=ZPRJ{Gi`He!xCMzu!y$*plu6nf2FNR z+uvxrgtoV7yM{JS&+XnT*ge%jF4N;Snwit4h( zf_jV966GKkIABpkIf%u-4`_egEQmTKtdC9fBY;TuAAxR+@0cjr$Z-gxuokIE7PjDN z6^eMu**F|aoBt&+Y$ws-;hS8tp|*YK7C6+Z%foR?ldWzf>PlyauItKVdvUyS(y-jV z!8@bc2XPnI6=?6RG28#5)#~8)xp=wUh^+0}*kyzoiAyXCXCmIhd3bnB5m!rsp9+(` zvtYprak4epk}T|^YN+x_cLkklQ%9I3gS~xyGI4Vo|-|?WH>Y#55@%Cy$wD1XN^*~$`!Fg z>WbL%QJ90uZ2Cx8#+}b`HoXsuu4{}EcNHdw<)g!#>&RIt97^2%z+swWk)sjM@thZ2 z4+?*O@fgTIJYu|J-{8lkV%Zdq_9+)B4K+~5-AI8DN!d|by@sgnYNUSy7d;{vRFK}Dr|IZPH&6S*p~7V7B>fQ z&fbaioyhdreUt2+C!qk7PMdoLdK-K(cii2aNAMRaZc_2c9*GIZ>fAt=o6H=$S!V~) zX3lXv@ztj-yqinqWd?DvPb*`6D2fBVGHsAU6Ieyi^?5Eh&>~g5QOedTZAPhx2NdN^ zEUZf{<$fIcFmB~;Ff7xdLn#G4uD7=dD4KXJaIwlcMEUXc8QsF!?I||o} zIl1tVm{SU`h`C3hu7mt+ZDEeGBnyWtOI-m!y+BcY;bvuNC_JbvjfEGLrKwOe8Jsbu z&b)MV6}sSB=*L67ffm+O;Su6ZMt%kHwFW;!{7Zu;P63{dhYs&3;u8%%pLn;yHxl1r z@DGWfHn?UF;5s~XcvGuzz6viOUSaqr67Mkhdg9v+ewp|UgGaK!Tkz2FT}T{A|K-Hj z82SCgj~M(M@yiC+bOP7m;p!bTZt#)q2uo-USROfDtU?cVk5to z_#uN|C4S4`)O6quJaqVLi8mU2eihzLe65i`NF2zo$A|;^K27{f!;j4XZo6Ar8d1g?PK+UqBoP zZ#VH(Mt&Rd-3C8fg?~-_nvr*O19#!!>q8vK&yB=^__qi){40pBHTXW_hYfz2_zi;_ zW&#KF&k$$v(DAP#UTg49;`0o?jX2Q1+)aGHk-tj(mcb1!a0U+@{t$5>eJhCr`F{ZM z2E#8_$xFn$jQlR*`wf1A_*sKrC;qF!sae1sc=+ihUTg3L!~uPF6JKrQ_Ygm5@ax2H z8{E(n_TNg}frpN7ka&^7Yl(3ssV_g7c&EX;tMJvtHyZh)#7`Rh7vlE~?#cn@@zC+F zufm&%1L-}U*fabqiLW>K3F2oBj`xQBHwnf=$2XUFiNTwQ1OB&G;hn_i8U8KAcNzR7 z@pA^hOB@&vWBD*nRpBi0EIhP+2UN*75N|T_%ZaZs_#WawemzM1n2|qUgja679LukHN+zZUqXD9!S@nBWbk{$vHptxS+Euc4PH;Y(ctaGI}N^>_)dd=Nc@b! z@!7yBJhXnZhy&>#tinr(R~!EM#Jdf?xeDJ|h3~Jzj}SkBhmQXhV$J|HeuMaJBhSnM zo{EQ-??t@K;Nyw68+-}zRR-Tr{FuRS62D{c!~x(y|23UBkRScTf$$ep$yX4s!9(j; ztdf_AcNzK3!~uQoB)-qcpC^9B;MgE=K%Y9|c06=^IpVnnA5bOVK)lJw&m+Fr;QNUm zG5Ag5Kz#2I+k2Y$U@Z(9Tq53O@a@F+82mW#(+0my{Jz2Yxxjnjq0_UW3U46}l>hcB zd^Yg~cxeB35Z`C;}{Z$0r*247NzuOhzQ$bU)vn!!^S0q611;cXz^Wbm29=No)C@dF0GM*J6p z8x{j+@X+D)6E86MaN^AdpHCbp|I3N5G4dZ0KV$IgRrqbN9YZ}7#$f&S?V z;%klkN#bV>ew(;vX(hZlumLx}^~ARu{5hy(hqA>Lr*=Mi6Q@T0^} z8vG`4U_IoWDjZt@c@rKwzCq$Z|2Rav(#Ve@4)9N`!bRdy!@r*Rc7vZLe$n9ft8m>u zkZ17F`Ya+|X>gIaWbjqQf$*;*zRk!VsFFWgg`XsT&hQ&n0%!2h@vkS|WbiKH%MHGt z_z{EOCARmi_|L*xm}T(lD!iU}qmf@s99UnuocJ0ezmqsnUmhfW%*fv)e#hX{D&RnS zn?gJj51qbM#A^*coA?5QZzjIe;3tTmHTd-^{5J9XMm}{v;K2Gyo;dJ+Fhsl(53SE8 z;;jbnCcfI>2dnU7RrskY{5i3PrcN+QQ#7`UiHgV0GO87Zg3v&$~AwJ&VONg&B_s*C{Q4^S?N#_*;ztbsb>hDm+ zjreYZA0>X$;CG2*Yb)V(z#7CeiRT#k4&qURA0U3z;OB^6Huyc___|8?(_t;-4IUxh zV(|G@@=J)XHu5`(?=$#m;uj5$tq>@G57)EM-6_J_%8-`Z2+EwhYo)e@pgmnAP&TL zAMry*{$>?^rwZGLh4~G{89a1+ONdt+yn{GUKBHCmLgLE}{|@3ne|aDA!$$rF@!JO1 z9S+=%hmL;{@hXEi5pOkk7xCo=-&2Jjtiq2~;iszb^HunjD*R>@ey0lC!(n|Is&J+X zPbHp(hfePh@k)b_C-w}!fcSEQA0d9i;9nC5=F_hdzh&eTM}Vi};m1cDc%N8Fe1MUc zh<6!$8*yO%ayRhL0>P8Pa#&_)%;_{Fubk#5{~R=A!v?99ej zSoN*88K!)zod!q$TP?PD@q6gCknvA%f91~A!eaO1BW$8}9c|cpj7u|U!|vl~Ax9hb9%H`~ZIYZ7v`Io%(iBcLW z3nsoO7(XkGJ-u^acW1-3!ux%+>>y#>`Aao$6`+cj)5FUBU(D1hBHb- zlr3#h4k8{Ukln)0D7_W$M)+Nha%L*Ld+Ctz?xX#5JW40f`=~s}oiA|9!+zZIa0g^+ z&(Fco=M?ILU3;?sXoo59VcZNM!ovA z&;03$-W^Wwsl``O(Hk7^EQo5o0}x29fAXbPuBM24CqtBPbmSaFwnbH8ySNOl(4Qw# zJZy<|x@x`E%IQoxakDza%p#Aw)!i@S!Jh^|d0Ua?(4BvkoxRvO&Yiv3b&h*M)JFP4 zptH+rjLqY$#xR&?Fqn-nSOvLTjDBg-GfiyYR=tH-;DCL^%0Vn}z-D0OAQm`af3I>7 z3mmYgQaOl4`i^~|?+z(nN%Pg{29gebc<4annfz>6fm>m6aqJ6!0eR|v3hLEc>O>NE z|0d)hk8A{z`mz||P5ElqUg#Dhle&q)UzJ$%3 z`aDSqdoiPG|9uI&8+kDbwn}nfW_dJ$T!1dc??P!DE%nwQQIfd~jG0P5G#Ly{hRkCW zDmGq;RM{{kTDae5>C8i4cp-H1QJEWNZTCl%(X;5s&0X%l(rK{@U+)T+`_+|hMb>lo z@pe(p{V}<69%u-9pH7+V*-z#sJF;iL&eEH>V4&|#N`yFb(#}r(g_m#u1*fQ50bW2H z>g*nVIImyr&1ZhhM7TRyHtti1OYU^B)vsM!PVpdwsPZr)d1xW^!b5^2Yopp3yW5z@ zxK>}XFL=m8<-XM>9+02nKX7ttIkOi#Bx$yd+stw7UR706EPupZ15m9ukLJR2CGHDE zS<8JMChjSrN7dQ7KckEL9G*SA?1md#nZ^Z3;~7XJ`^19uf9lSQ9b#`Uod(kxB~pFi zfvPX0gSztqha4pq_f`gtFl*#);xi@Ro`DrUyR~!NWBeK~Zcu_i0FxR`jw?341)zO_WwLN02l7`Z*&OrfnI*KTD_W z97&H|8WmHe@ocfTm(GIej1s9du2E^EgG%GJ4^bjo!e&8<7$c}E60smo&N1e|RC_x~ z^ZryT8G+rM0;i{t$lIIP9b?bsZ<%wb{m;_W{-?q`8@kJFAxZ7+O@v}QZZ}e2XT{xD z1N^1np96mJEdN$OziEY^I$roL@M77Qu#&)m2Yg)hp?`pX{?1QH(9ysVDpN+B;bS2r>naI zRN0-Yb+}04vrD_gR61NJ_V&`pVLGEkN(aneI9Aia=&+tTpo$zylLw{5B6XE>j!+$( z=y;Ezj`ms;dMsY0lDrhdR7c*L$QvhAn_;~wY26M3gZXo~m`b-{vA35-U^=5jO1DFl zZgeoZ9RY+JxOf2s&cE5+=^pP4WS(ilZNDi4rE9E5CVPQ+DywCx~3*cwN>aRP2UO-Ju6C@T}> z%3y##-Q=b2$&O-FEDW*Wc#rgCX}>2s8e(h{)~&+tvZT+N2;EMEZnpa!v;Z^?YVCLz z0l4dsPQRR7@Xj-7a76RojLl2gjG{MI`kHT4CL$QkF%j|DOiLI9IVnMZ&q)b;p%VH} zY5Azhs^yDC+CA&j7~>p8g~zt^j&5|r5}X^wNi277#MYH8QCR5*r@;^3hpkaYQoa#$ zHTO?Aznhes;tLO8OxK&`RsBQz5AeM&*CEJ!yc-8^5d-$sBM;Eja9{ic>SyZg`G|x4 z{8ds%?9!*jRQ2Yc#ok`J5~edsr0UIjRd48^>J8#%|F$R0k0HDwPVyj5yL2r*TBXmy zuv`m@^kyvdGvD_68TVlnPYJyN_w+mRdkzQ!d-|D~z32(V&pPB59c(obPV0HEWQ_MU zBsA?F3XSyCSTfe#K!-h9_#A@V8pLh6xIe~`DX|{yert_NLCVv+0$p$M6jW2}XJ?*! zrv>a^K{RqZzgJ+ZTc?ZVRTN7)?M5*n?XEb!7IZvFGk;IVj4&(2*Ws4&eP8q;NIcnZnokDsw_QRv`$rcs9EO^LI1INjw8 z5XWbSb3FOeP3}0$ZDx5L={G%@L>%N#B6Lyc;HDwCU>Q_Ohf-gNFYG^W5L4B~&x^gibRA4*lt|S@9Q|eAP6t&ND~F#pp#xwSjKvvil&0++!|nwq z_lUgB1QpS-LD80w=s2Q%wXfp=E=6bC!Kv9yWD%xj?9QW@nw~%+(!p}!J1FM2C>Igp z@WF|Y;;6pD-bp}M-a1-gb#!zq+-&c=XdUXk8-uWf5ml{sg5n};R9Fd2fP~CnY06O* ziQ9?1Xv2a(efD-6g6)zR$~PmM4U-bh zM5i7t-x6j%W|)*{=ILbK8fN~$Fe%Z@on+n?WjylpBN@3nu%U4TD~jH#Q93U+$qt_9b|qr%>1cgQlgods71?nhnY_sCMBAAE}35o zGylynDbdUlnfHX5&ln~pnpr0E>tW{443iSgJdezK!^~$5lM>AwBl8!#J)sLNZ9RQF3E1^WVCNtH(;NG zB}();B0)ca;Y|7*!5%6i`)17hMY}>{`SNyOtNB0Ny~N9(psbV>w)t zlt10CoGSgwMb!NPU-xgpGVc64b$;l!GQS;WzHFG32$OSUKb3{b^b6fJ zM?&<|JmHNVS_VYAau)Anie;{vgQmNf7wUw#i>8&tjCDMH6b`G(Wv?Z4=`LmZmE)=pbKEcNc&sI>0tjMtSb%XM8sYr&6VR*p8>F0f z`#gwbW2*EW7*-UMqgR+CCSLl%94&G&{rpz^*rkU+j+NOC)DbgW*2xsW_p9`c&LQdI zJuZjaBrxDm6z9uTvO88@i5r-dr-@iYWq`N!fmee$YO(s6@Xad(9&W8fm_{YmJp7JzU{INDrOd=(Q>%-~lbZ(uBk(PbCW z=_ix8b`?VpChh31lU;hPkz*R~A;KIvatX^*BID}>ez>UtHz1!4o9%rXF$17ePUe4) z8(L7%m`&&#T2O~S2f4nRr9LvLn^R?u(=o0EL@q_RIK6wkPPd0a0PA+%Kf{k2c~>b= zc#JD)IK}Ps&W(FlL0o3vuCimg_N}P4hn^2VVMvn7K=f}(b<3bi0ZK19uv^+K=F^eg zq65wj4ykbBqJ=fe8fkl1BbcsaZ-*uIxW2`zuE)5bh*u5j+>x;FbMjxs&$~%%<%dzw zGVp&FmT~9ztR^VRWY-ua?l7mzGf*;|)$D^Z={W%tKXi(Ck)j4gT>9l;A)ON30Va~- zUB+#mRm3%OJ_G0mgUW^Hk!@p`9O3vqZI}q*_&sfy1gUqCXoPc}%cOiU3zCiq-KV}s z@DI=ycf`4GBIkLT-~;u*QhrY4#564U(|rLN%C7v^6PkXjZxyE z&joXo%zp_p|7@6)Xyzx#d^F7bi(yitnfsFY{V?-C43iSg{1};!g_(afOiDC!1(`nx zGyi6olxSv&%*Vsbw+)jL&16?l{?{<`KMj)-&D=od55vrN43iSg^vL{CnE7|Zq(n1M zBlC$c^IgNFL^F4g`QtG2ABIVZW){eNGR%C>Fe%YY{G3*_{F5+q+%PH8%+twyD$IP} zFe%Z@^<@4u%*5{@`?Zb|&0I(3(_vB=e;(v)(W%(ab%`{AHNg zV3?F><{UDA6=pUXCMBAACYiquGn)*P63sk=%zqCvn+=l^%{+_Dm&44IVN#-*gJk|D z%xp1CN;Go;nXiPIt%ga7W-cT1w_#?RVN#-*%gKB-%xpJIN;GqCGJh9lrVW!4&0I|8 zYhh-_Fe%Z@rDXm-%$#7DlxXG>GG7lfCmJRtnz@L~KZKc+43iSg93u0LFtfujDbdV@ zWd1SCoNSnsXy!aJ-wZRS7$zl}IhV{og_(O8CMBBLN9J2$X4Wt%(aZrd{~Ts^8YU&0 zc>R%)f@2(+!gn&CHVdw=i>tVN#-*+sJ%7%^4kFH1lvW-w88k8YU&0c@mj_4>MiEq(n2flKF0!Im<99(ae*{{70DC zW0;g^<|$;p7iQ)RlM>BbMdo;z*=v}TXy$%oz8_}h4U-bhJdn&tLQi_t46x5IDbdXB zWY&b4{f0@2W}Zr>6=u#hOiDEK0y6C|bBBC{pTTxyt+{Z8}(ag)p%!HXM4U-bhyqwGlVdlPuNr`6u6PXjk z%vFX-iDq6w=AVShnYtiCMB9Vk<8g)=Fx^piDsTl zCVnAMEq|$*z$U|_L^J!z90)UyF-%G{vy05ZFmtnEQlgpj$=ox{Jk~HN(adRN&J8oS z7$zl}IhD+LVdim$Nr`4oCv&eb^LWFgL^HRLIX}!i!7wS&%o$`Z2s2MKOiDEKY%&*y znI{=0C7O8-nL}abR>P!3Gxs2K?=W+lVN#-*Slf-37loN88zv>1c?g+{!^~3*lM>Cu zig2{NB+T4yn3QPdL1ZosGfy>4N;LCYGM9y!o?%j=nJ$^j!_3nRlM>CGMdpeybBAG4 zqM4r~bDuD?V3?F>=5=JQ3^R*{Nr`55leur0dAeazqM4s3b5)qR(=aK~%}Jb7 z2ZF%4BBG3>kL|9x$6zWHjG0J+6Nn^3_9L&4>M?`&>G7<(V$Z;_auX`EoG}gp5<;c=wQn|*`U)b z_Y{K;vE1zj?XcWa4O)v&Ee7E;EcaZ4hAp>b(Akz-HfY3h@oQjyZ9V7z z@b*4%GF|5%|LmRFnf+^xW!G9Vvo_1vKUf=KBZ!Eos%Rp@MnptJM08>{s$1C+RaI3< zMN~yaL`6gr5!r~Uh^UB)h={6)q$;Yas;Zi*u)pVX&b@Q*{p{%X`|Iob`|Zoj-19!q z`S+aXJm=hV|1ctt*&(^{YNi#cm%B&wHJVhbLUi*gAkd{j_mmPki_Bwr=5 z%)117Q!F@F!9u`3a!Z?*)UX(^FTn~+GF&A$u|&R)jJ0?V#QcFu8vyt^!C`=M+0<3q zXuv;`PJe^1Hh19mTRCtscnz6`h?EmEq|E!qs2LaN#Y*jKJ@ zIVBGY40Uj-`6$FXlJZUg4yUvi0q-Ih7%gxl!9u`033dbwQ$dx0zmQ9I&Pw)9COH_e zh?0*2e1Vcj0oM?m1^6Pt#ei!Gt_6IF;8wtw3GN4ch2ROmbp$U0hN$xCcME)rU?Jc# zO5O#qJxTTj+>tOOZ3#mFA1!w4a|~cAna5;~6Z!Q3QnBY>tuT%0> zfP)FH7Z~d3?DQ=VSg%#>eilc2Quc)LBaEm?Wj-0uG@XmH-~3 zQn~|vL9icS6(t`I75xdU*!)W+!&4gmg|;8DPB1kVB*RQZ&91inL(Ie^W{l@Ozq%?QvkP6l@ndlSI{>#)ec}~*hmXU+9qYrO;P6<{QO900ctO6`2*bi_b!J&W?2#yAPfZ!y+ zYY5f>E~h@45BLnh<$%u;+yFS5^4tb^7s0)NqX-@WY)$YK;GG070M-x;+%Iq>!B&7R z2^It1O0Wx{L9iF#Lj(r_P9iu0@Iiv(0k0=m3pkG8Ou%~yJ^?tE;4;9g39bdahu|i_ zF$8x4-c9fTU|WL60D0~|2lzX~?Z{Fl2z*}F7usLz1zQksBQ4n40S=|vw+xWi6FmTV zJuyIF=q~51a4W=ikOLV5_+Ce=K6(*V3)r5Do{WKn?gyZ z*2!2_;?G=%?Sy0=B|idqf(kkb=qHDK0We7G8}9=Gc`4Hhkk=v=fKSp|q#7`loP2-4 zYJx)n*%C$razPUT-TIW~;r`++0hd1NAQ+%^?p(l5q@;y_H<6N70uCa$5pXcUoqz)g z9t6CB;0ZvK9`;;zPpRh+(=Y5cvXqGecN%V(12}{-ZU>l6ZLI*5d%#@-sW)IcNe%}5 z2IW};_)UV705d81G{85hpxJ=0(O6mx_#8>D1l*W_dVp;L43m{?2OLN?x)(5)#^;e_ z@EqVyve8R`yUAMx9u)X4X+9TlM0-o0x}L>=zbtaY0f3tcP6S*^$!7vSO>imTGJ*|& zuaK5@0lr5o!6Sg%N%JQGx$@@$n^PC3PZD^BU;*GelxG>B{8tgKRd97OI7DFRI;X20 z1u;I^o|FvMBW<}e?L3ehoMb5yrjW)~1GXl(F`49EK!f`0IN$(Eeim>tDaZSez|JI@ z3wS#ja0swDNp=BTljvDJ;q?N{rz#BwY#>;pB+33K0KQ4{Wi6omFAlE$ngO_v;C#Rj z2`&Nrh~R3#Gt{C6z@B6+I{~{BJOua|B|ic9Il=RQZ&2G)CkyONdFBI_Qt~3euTkZ@ z1Kvz<0N~dN4hNi1d5#AhK$5k9D7}e~pMjW-)Pg4fucsEQ0A#If24t-q0Q`XJbrNtd z!IW}OFfZeF{S%8%U7XVhc)*+%ywYK@tkOTQM*ETC4 z=}&Q6?s~wFD9_D+14zjyR6ztU0A^91=~00@rC{w{^jItaOe4vTfL*EdYQPMV8~|uf zk9yu10mzfyWWWll=QO~MH0jL(TuoEie844CrImm`CAbA}5y1n1iwT|qTLB9Q)&lmRJZAzvLgQuuAT|}8etk7y7lIoB+1(xjY~sQJ+1*|QTti(Pm?Dt3 zs0RUdp?Z!0e1<&hIKcf>&&hy8Tu`1t^LhHGO5yTn+IBs}!eMvA=L7a6OIW5#A-D!` zA;AW~=9K3)z?H80l*IM|=8*q63V6hDSLuwBOmV|Tz-!1j(_;c}rYZ#ii>OM)fWINh zO2BEP_WppcdaTm*z#IbjI*o!+fa|G6lL2QCtOqQjDS8gzc#>QQxSi^`0`MJz>i~aE zO5U6d?g6}?R!=9A!SjGGB-*ZrTO%M|Kj0iM!CHZTr_w`!UsCc;Zm9KH4Y-q%k4Oe5 z0NzIZUJH1Y%b%CTW&vgsTqrPfwX^0cAvT=)VjZBoGt1S+O@QB|O6~-_mEd8(o&?VT zwj`MHh`<#D^8xuZxd$K*w;_OR#*+crW}X0Ko7n)^oJ?*fV2Jc~5HO423BXO{kQv;Q040Z z8(r&M{ocwcB8WfJpDuu0QP|y{6@V+KLN5b;L5^lKU^7z3ZormQp#y-t)Hnhdr1qQz z43IW20zTz+*E9XwkfdRd3uxbZp~rs@Kpq<-0NHWR5g5A1IoQ@h>{G*C^j<*rTt@-f zl{W$!q>apJ0(()-^8wj&6#;%q9aIU(qj~@!Pye;a@|+8}pZa$#;D-eF0DesH0w7yL z{&xia%VlsSv3`L6CO8%F0>Kr4A5lR&0ACSn+o8RtI0Z&LD$fOiut`mVq&RQY~@caY=+z%c}$0Nh5&*8`3q$wPp@ zAcdR)TusRX(*-UkFPRINN|qb~l=m&TW}Pm8IW9?Y9O_&p&%K`O1<8{Vr$?NgSqB4t zi(Jhpz(Oi$65t)wqG^DCraWf@4kyV)fJ0pMEQu`#?EoA|`rHF} z8lJ`iv* z!4WDsDP%lgDz&{f8Jv?0E(Y|5Eep~9d?lcd;0BeP;C8^lRHZ$D21ykcQaeC-$+2t5bV>$$0iGwxL4a)YHGpj1lK^j|de#B5*(?C$ zE?z4z)Y~}~Zid(x%5XOzpNk#>{0=qz6yR}EQ6u0Kg4uC_!>FJ_z%FE*9RYbN><-8c z?+3V%lsOpiZyu{JwEr0nc#7ayz?aBoCJPJ|IaO2#F)!784q#WR`3gX{qY!=JoHy5y zvgOZQqiuoUE(tq*WU>7KKPET?@DTOyD8OujQNS(Kl`{Z`ks&<+_$!iJ4mg}7*8$cL z+zL2~;9kJn34RWE2f;IdZ&B%ufFnpU=X(P0A{YW3Nw5pxodo*=jwU!1@NR-*0B;Jr zjczhv`(iho4!GI16qRmJei9e>@MrqTIgq@XOnw1iIvK-Kz^}-bwgK`TX=ea?Q}T;| zY)hH51XfZri0@WbO10;d7exL&jGF>$&~L4 ze2ica@OuP{0l!bM2OuiniVMbrZhqmG&j zIE|7o09-{?S_=3i!Bv32Ah-_jM+7$~gL?rdQt5{Pe@MxXC4*;@CBFoCg7VCqEpR01 zGhd*4yQTzU8Kk#Lz*@?%H{jz`$-#g>Ay^|Y)W^B}8Vj-2BsLlFy9B2L9;Bk@0xs(0 z?%XASk5clrfIPCd0e**)?*rt5jso(4`x20cX3h@;vK18pvfe5I(c?|V!N4oTNSm;( z{Z)#~=M97OLUM0o0Y4=;1@J0K?ObWk1Z+=m0bpB#%K>v~)T{vvlVk&62HDtFKpvhu z0lk#xe!xDI{BuC|ju!#BUqW*Pvd`-e_#9cqI6&^KdO-G$D*?F&x2il{b81O!w?Ma% z?}wP%S*dGsw;8T}JPfgnu)B9o0orRLecJvdU}lk9GVnuzUnfoG1Aa`B#eh!{>;m{T z8VmgZUna?+fH?$50hXk=t27aCJgrLWlEEhcJ5bw~18$-rzYeg3Y-5vxRQWwBPl87Q z8>#YV0DDnEjeu)NvfW&PFB0qxSVL7B1lWpNR0Ft$3}!qa>vJk#N7CnP!2XoyBEaS@ zX!?mpkNz{)b*muAclK=nEG4ViE--Yr(@E@s*ws{>!+=?&jN^c8n<+mMm`#$|fP9~M z1t2G{2JAqk4+6Y}I&D1QP#4tKYr@h*{F%C#4!P43c1}j~0LO(bsK?quz`v5@3c#ME zwY7lV32p>jLCJRj@~GSk*nzC*5a3@Z`ANX9kv7i)W|4nOnJ2KqrH+zV4&bLWE<%8v zD9;MOD$;u|z%qh^0E3i#1YmQ5lafi!0IZ}u=L2q}$}a(IAj#E$X(YK0FqKN*3V0Ps z?g2bP3ONeMRXPh;M#(P%{*qwkj|E;$rH24nvI;PtI&L7~^#p4GZzTg857>niQVVz| z+0qQaO|&GK2gn620o+Pfw+8Sn@?8yptodz#=Sd;^0WT0d3iuC#X8_L;Yy{+jvgZrD zH|!p;tpGcbLP`MdAk|d?%1ehGPC(7ev~SoKVtZU-C9$D^9}pZ3*qTb20N9o4Qw!LN zBxeBfAesyKJ{7bCup8yMI$82{fTbk41&|%c0YJWVcmlAT`r<4gkAl?41-?U)MS$bN zmWH)Q?FY!cHWo026fzmGGgW>%;0JtLD(g+L!j--N$0B?6eb4{>B+JirH z9_#|aYpCwM0SjEIOJV~7v#Cb60`?;~8gLa=b0T0G-5)s%4^{b0GOk z>fc3xeQylfY(xeIs&$#qALNLQPI5sOGt7cU>3n)fHzX|F@VpzYp(a*>a%nQnRYY@ zf}a$*jkpf*I;#6zz}IQAT?W{KlD`bNne?#*@J}7x1?>V{KzSZaCV2vIHqEPN0oO`< zoQuImzz?ZPnF|E|gkV147X(WHLsX?6fb9ql1myFK5rAtc&k2CllzbXsEy1~f&r$Lv zDo<+rO29%&z5%d+;C8^5DfwOtHrc~Cf|zEM$0@)pf)@Z|)TMzZWR#P1 z6cV0CxpfD8g5W^F`2=eK`=nUit|zC7fY%eO157J+OU@DKuHiz6^`ddL4DebidJSOP zusg$zfc#wlPQVG2{1D(^f~Nsrqdva?ct6d`DGLSOM=%|bO*;h0cGMei3l%g5@K*%u z0e2Ey2KW@gEr9P5{2XvM!PKV&@|Hvwz}?iMp@8$qU~2$BA<1!otdPlothzeDddhQt zGPoG<1(I9^ID=pV;7o!$0cR0B42a4%8Eq#JvyjBU1Y~EIvq<1?NdZNGtd$;stiPdv z-=^ea0b>Mf0UsqJoduXdBWWRECz^Ve0dhgB02fd**8$#31#JdoBi#kaMtTtNK}voC z@cVRS>pWl$jqjA7B004^9gqz_ACT`mGn6=8Jr0? zmsB@D8C(JQ0JUf>;2cWckPL21mV7VZA1TixfPW#!e+uvt4f+czIY|ZqIX{zmW{h** z3keDThRmZ=GS~}{Ul}qG8AhBL4ujZ2YRfo4cF9u!`3CXXfb6Fi0#2qpR{}PpdGBSw zt<>txfYl_q8*rOzIa(4s2>2@X&QU=2NT&hklg=*!K0z>j39mI;2?@8R`V<4UAy@@? zBaPGk$nbitbMxj*h&@l`jsUD9I3AEab}b;!c(VX^ktP=cew#Z2a5@##0Jxp(Y8&9| zl;>VRer?PVz@Jhl!Bv2TG;^#2Pl3HTwE-U!I2 z9feB;@}M06$jjF;fPbX6&juVz9kUjYpDEc5SVNL$0eN;0{9GWf_c{W8Of4D+cnjq@ z5s)7sn-2I3O1>EIPDAv;5`J#0B)r!O$QuFlFI;j z7198B8%gd54m4fIN{O0ptfEE&}rGUc6i&KOHd`kZ1Qvfc(hBJiz|c%*B99s5dtP z{*2%uKz0|$0eMb31K5w+-YC#LF$A6!G53N}x)9g>v&4Nl{9FzM*9mY=D}{hJ(k0i9 zfMFWzRmtE0z~`xnLzBTVfU8Mz8X%9$CjeKG4`9o% zTk&3u0 zz!sF@6u{*KX9Du$g$n>nsi2jBhY79&>_B?k446v=?FL*;@G#)rq_-2vlAi&5hn8v= z0sBy%na>IQ70t}KfNzpy$EHy2qi&b(!Jjq%LoAhCXG1AnR=j;7ugCDp{WE0e|jlIIb_GdLC+~nq#$R6XXJN6nE7R0)|C0{1F=E zczfP4#0;W5P6IwH7834>S~$cnAZ9Q!;+VinWJKk*Qjl`*2>31XMBS6Yfq<<@!2-aqQ8QKm-b`>k;6Q5IR=~;0G`AlyH&SVz z1NJ84I|-PJewt;!1^Y|Dd#JQVz^loibABQ4AStaK;9`Ph$zX3lJnzv&UxN{IFI8a_ zV1%kL3Gl{bdDJ1sM|sRm2A2Ys@o)j0kSybMh?zneZ%PJtTrrRRh{63`O`3l4iZSOA zgL~JSq-jLVRH{+-DuI(A&I2(YF;NmPN(L(udGHvlM$8A)%L4&lAvhfH?_`bR05hoy zlK{UWI2G{U1ZO5oJ`eCtvhc-#d#FmQ0G}qf0kDL|!d5^mbergW7h)c!dhG|~(oO+# zY2N1rvi?c{S$_ioxu9WyN$WKhF<4tSsqwTc#>_&@x2P=(0I{HMlF?GcJVN4Y0I_6j zVs0Cf<-P^*&y>e*z`qbYoXD7M@C0J6Ch>ECV`wlp0=`6!JbksmbV{BNi2FvGw7Lv2 zxOt>WOs`}a4FUX;avuZuPl8hbvk1;e1{VNcCdrk6mk2fhb|APd89buNHI}!6k5m#&z5s~06B?xJGAq`lD{F|(;M{Q%!hR`;QZnM>lM0cRzvdo-E&>?`KJ z3^8?-`x?NrnvIxs)TTv%uMk`X_%gu;z?TT_0K^^tP0VVa#Dw}Z!AFq5N2}D+ zfS(a;1T+Zdyd?0xWaSk~Oz8S1<#j{?Y#BC*sYZ;K@*f1)kW73OVy;gXGZ8Vxlu;ev zZ>huP0REKVqGWJ2U`JP;avq)P>FyUpl|S=5dLzX8r?^j0b^;D0co1*^!4rU)VR!Q2 z%Sm8$GB_p~oDYa~wbOhz0lGKLN@9lq+tGsb7+{drC#M1Lp?Wp~J}bI#7F7I-Kt50H zA~2NU6zd1E3@UmE;9tZmIVDE`-b>A?1)NN9E+9Mk20&g!?E&O7$fJNa!oGMN*N7M& zmDXyVKt4&S0OV7zp@2!x)anp}u4+=`a>THs+zOcVr0f)8nw((0Dlq9rKo`U$-3S;lN^<>7!lA=LqXm`t%N5yMl}KENlEY33Ya zcqtRwAn+&2#0MaT7dcY_lP*x^A%@p8YXNx~vI8*bGUOy;cnz8Vy1*I9YS;@gNmm@h z5yK0VIzV1C&Ii0na(B9uwSc@;wGVI*NuB|`nqW?Yz%{hCEd<<`aD;lhx(slcYh57* zr>;@p1#0*+=a4E$o|CYyr%v7_!i|k0B|$G5rBQd?&RYE-zLc@;1JSMJ>V{? z=RClz1eXE6L3yqL{3*3)6W~3hLjPKtfu&-67HA-7+`PG6JxrofL0 z764vF9;6uXn`E+8fVUCs2iSsaZZP0SRM05EZ&31yfIM8M0WPOuFcQXleJV3A&U=PZ(1n{>cSqaF_qCenguD&dZ)d0Ru zuom!B7nD-f95W$R4&=}5_eGGbAT2EiEFqg)1NerdbT+dgndC0ObJWa3fR_lK05qte zbAWxxz%B_4mFS|i-_QP~kj_rhPDr?G*s7rxs{mX@MN|V;lH_2(cgc!|10Ena7Lc!U zP62F2m+WQ$zD>#J0DeqWS_b%Al3WeQPd9G_Y*yrM=B{LthXjVooGLmFv100l3xLm1 zeFB>WwkOE~z?LN039y7Ds{vyK2Li4q6B+^7fg~pab|g66om}_tEWlPIxfpOPS@lZ5 zl~nqA!0%FvHUVy=Ja+&-N|O5lH<08JK%5phHGcw-3pxkL1!ew9AQw~u$a!`L+(ZQp z1#BQV4)9M@`DuW0f^z}8(a=~7SU@JX8jwqG0OZoQ0dnd40CTAHBY>TY-Kska*n(i{ z7J<103jo_uo+Zg(cR+4?f52BM`7pp8zUOtk{z!Ae4ff)3-~O-4S@D|(*tG~AisFv1R!_tIl#?iNf!axj&t4;$ktf_ z$aXv&ko8^*SQU0_b0#3$$3nm!)I)0lxz~3BuBC3<5BP#hOVT_wFJkq9KeLaHK(aGw z{sbVuCg2?4y(HNPI3nzBQO;I@?^2Zt0kdgnbqCBN%?}h9>g)6=!y(46!khrH_F4?5 zjFJoPe;c7%muO!tlD4E;*8{epy37T9iE6#5Ng>z+y)#W0V(M@OQXZ!4)&cgG9t>Ba z9~_tMHX~-Z3>9Y+cLTPe4nG9AfzC!w1D>S&^ezBCNs@uL1+F643XqeR0B)8>+3GBb zRRMlP&FTyIB*DReQ>ma)fX7L4B4C&#rvu{JpHm@o0k0ys1d!jXvIdZ!yx0UdfRgV5 ze1za(z?D?bQ-HYW=&aHOz_ye;eVf2G1PcJKrQYnQBq`6{fH{H!~-FC4&usf2G-PJK$*==KBCIQ|X@ro*>E7fIpxvz6dyu zY$>oqU}q{lAFw;YP69)noaWITVoy;i0{~l4+8RLawF!XNk=~{O?xgv57T|hn__)&3NJY8t3VeWI3E)+( zHi{ClmU&JFApXpCMg;_KPjMIC8}Jla!63kAU0IgIh6CnN;o||D6RZUsNd?UUyo2CE zK)g1~sgGrV>|$2|vO8P{m`Uo~3&>9jehC<*dKT{#$OTmZt{~Ud1CUoeqXF5UO$Gdj zR5u@x*D`AX*-sn*yxAdl37_XLin7WD&she{s@IGiNs0rI4=67V_F=SDz&T;l-X zD9ZCZ;08*byGtOh(K)-g2Oy7wF@Qr!ayH;y1lIt*Ma|p^csog+0^~^}^)~{Ckz@%V z&&-v850m5&Kwhs;0OTb=Eg-v}dcc3U@>JtB)icNazLUie97Q8$H6T9@+5kA66u$-V zP4cI^0LN0EhXCs-`3b<+DfwAIT%UAy=0(6UlxOB{fuji)0REDacLaQcU=`p=s#1Tz zT#_6Ch-;wEDvby1M}8#=xPv681Fj%A7w~>6Xfa@ktKUjus{wyk`#)7 z$zb*#k$i@d7XUs>up{6yf>nUa3HAfLnMxlDcr{6m1&om~)B^s5>~JO^TgY<2D#~*m z;1`tVc0lg9y$X_r907ch@;m|f62Ws8Z1Mnh$_FC;4YHk}z)%2Hqd=9=7FVa3UaE=v2Uk)JwB0*rZJh5%Uy@udrYf@%4zo{VC1{Zv|XHaBnin zW62~h0^%kXXP)VM1wKiz0FWgsl1UB#TtQ3Qp~>JFKz>huG#Q)@$cw4DfbY?oei0yB z^(w$(vVaD_cd3~>0R3bE`v6l3ehzq^oJ`7x0{KE$A>g`%9QY? zmo6s&d6jYjFi73u{Yc=0WQsX}xSh*sAq9Y&5>}@d4<&%F5v&BGgIESh<4e-|_ITvsjEkBk59wf<^0jIOo0lq_$`vBi3_&MM_s?uq|w@I=Q zkoB3fUm&-r7?9gu4afxz1>`DC0DO;1p9c6b!8w4xCAb){11V%R;31mp8vvIO+@1^` z04$|Ej{|=0vJibu?iTTX_%rtq&Oz?Z6t^jOKNk2as(L2iJtSEOcsIc^z`F=m0~XP8 zpg&+9P3c1bJCWpQzzD&KfD4PTtLZB0IsA-;yhq$GQ^w%0?VmN zA;7Owi^>4`Vonc0o^%HS@_Hl+$jgX%fV_-Y56DygK0sa^Tm`cy!6(+dIFp>GCc=X(f{_l`~jvPb?Ba357Z<)A?JAgut| zgH!>!lgm)S{@gQS434qYAA)(bh8YISV=a!3GfvX_R4GZd(-dwoz{%x!>o5j+UUJMZTKdB-vT6M=uBDs=?pJgWe&BZUkEtR`3kxQC|K34pyw zvJUVM)JO9HcacwB0(dhG*j0d|2yOtJK;wNo;6tRPeSptUADstuZ~RN8anHhUB~SdB z>wv<;a$=tDTo0BA3IBpda2LS)s5*TC?YZ z`X6r`_fRZH47-K~z|W+O&H=w2kUh&j!2YDrlYj#Vrhh7sy;Tw5U}{zcAdi_|fb5iS z1zblaG8(W0>2D%nCc$Zd_q)`u`q<|=D*D5p*~fDr_-_e2^|2UmUy%j116&EnE2DLQ zcT?e804KW&FNy5|yhsHd2JBDCj|1+Y($4`-p*+1u1b&N#VGuA*un4dl^+p-s1*%dn zz;Tp(AmCQ2(r`e&Krs&RG4eK30Nauin3)VN0?Z-FRe=AZJU0MNB86-Ne1TfD8?crn z4*}j!3ONqQUHm2BB5Hf^Gl8s-E`Y3%p@5Imh#3vIgGTa1z>f${OC~uN@I9*13cz-x zy7kH64!~w4c>pj=Jfi!;>@HaFxF9H6Inwj~zz=@P+As|nY9RXjbg1Q58Gy4O6 zMO{1;aJ9>5Ww@*L=a+^Y$e%gh$3pTG2|LI86u{-A&w9W?t~^U(3jmwZfL#vw5H)ih z;9)9g3t%xN-wF6IB|iw*n(Xr^;33NMEZ~EbyiuV0UAMWv7qQQ&)5`!G2o3~1LU0n` zcIw|cK(_5C0Ap02Wq{wH=Bxqa;kFrYUy;>8+V}1OY(af-9FYBF`cZ*AT8jY>P@cU3 z*?Eov#qD}1xa~m59O4SCg2bh~d+^ae%K; zD`x}py#s3i|0EeZ7n%)#Ckbu`>_*;W58w+_&|yHn$KfPkge1=aZYJpcLg1YQgMfb} zSR^p?sI%skO-OGftfH|$5RmmV91wf&OHgy~^PrC-9dJiK8wqv}039(aT4Bq1cTaYni1Foe$ zDg<0ZuoK`PDbH%aZ6w(rFfZ)3&tb{n7{FpmUMJ9PA&Ve3lD5h>1KvPs4*~Lj2tqyYlc|}qPxP>G;0d}VfRRQwLj{5=f zYmtWnzC|<62tav6 zen5Vw^HIP(t{y6hod)z%o|gc91hfAna06++5Re^8M?kkFNnWspJKc8J1A>Lr^nQTP zP;U$Z97>YI0XMiBWR^o?eJlhoN!hM*0+l8C*LuKdG&1G^4kpP(fU79a<$%{xHP--+ zpyUmJ50d0Izz?0Y-`}z3J1GRe*1hZLU{&QX4k|UP}e-1Uy1{9s-<1$&Ul>B^8|o z%nrM&bP+Ji1@$#gvV*{%MXrt-nGaY`up?kTRlO2$I!X2h%ygAq5*rQpQ_|5yK-Ok0 zU>+4T1Mq6n(LBHgmpa4_yqnA*(V9N||_KS=Rp zlxGCIEj-a`Iqcvsy~>Epk)zVD>tC-5MV=J#(zp@!h}ycP8DTlU_EcsYdEL_GxUsqC zvQe53y&9f=q6GXI)smsd2xa%G#Bca9VZA!2!u>_9nQlcZa6f;KgQv6>To^|MF~P5 z$04GOuqeyZ3)M5iKauawbw+prey12=(SWD(L?gTqzhjN?Q~0eh!i(^Gs}cSweg_$0 z68P&)M`b0{t&zb>YIc_bVV)=BIPqln*lFv~2U^W>qpNHi$T|UqsT7&ef<%1hY zw#er_`RtbucEwN12d~M2@63?CXeFPpeDL2iUn?KKa;kx>64Psq*vLrgMApb4~y)>cSR*;vaUA0$Ih(UrnlJ?U2Y~z zjOkL<?%zm}?)lv=2YE>zmm7FST#bF0~(XDYah+RH`h) ztWLsDm)h>Ww55!3!}DWlApVT}ZUN(}J~Jd}gqq114Tbt(7s?3D=$5I?st^4n*q63Og^H}M(a%hHLxu2+YRIMhS;a$|}$bT2m=*3fMP)kC)tR1e+Djb3Z$ zHsVkZ-OG(WYv?xO@DM62rKMU!w-JYW=w5F0TSK=IhkEExtt+;nu#CxM!zMI-e^?5 zBa0+uMl9bzn#ltEu{}uCfJ7n>{~t-Dd%lHadMuH@$~q%fC5g>ss;sMY>80KDZ{#Wc z$h4$HHdn8if;5gf~# zQ!+Bk+6JN<E37B}120?54k#65`6`03of1sb%2Qg1 zKOlvv`Ljw!!Zj+dES*=H{A7Bg8S;~*6p?LaoRJ>T^)9RP$1nIizKBd;{_?`~_+<$= z6=KQV>W}}+DR=1#a-IC~FB5V(>4Au>9ZVgSWv6?i=~5S6bb6?_QctM8)>2-suk4<* zpij;9xv9a_Q2Wjm^4+0xW-vAUtmvt8^Rm+PSYNRMv+`x>vBk2MFhlLqW8>_&oOCNM zoqf=kKQh-B^rb1g?)KAkvs|-pV1JlYyC-ZWFS9IW1XOLZ(n8mFm#+?;^W>;=ud;z@ zp+22Eq*=A<>37yjLXKLM`eRe>D5uWU-!Hj3dUB6DvVf)WUq&!DISb%k_fLOqHz9qJ)V@3JeA_Pl6>R2lGd>c zVph+U6nLL2X`@7+i@XlI`koR03jO&e%-b+ZRY;knp-YhkSZ@e+u3aoW{g_-=!KtR$ zc8cess@bdG%iI?`jw88%<%^xe(Ze`8D6{`#a@Euqy9g%pfiD&~ zB}X!4`(gz+dIU#hIGT#1K{%4L9A9i0j^td=7aM~kInD6JCgMm|$-Y=Ej^v!e7n_MA zS^D~7^Km363clD99LX^A#n$3TrY~QtdXyZ=^yG_e1bYleJ8(1;NBeN}Jscgu(JUOD z!qN9}l=&Aqnk`3IW2SiOEIkx~%No`f>wzO#xcXuPa3nrfT7aXuI2wNOuINF4x1#(n+qcL69F20fqe}_notd2_C8{T>l zSw2r+h+hD8AmAwrr~?6uET9eq{L}*KK)_-PsDnF=$O^HA3e!LhZ{)`kgf6_ES49^x zvB=!8O+3NWBVyGR*=FGP60odV68%IHWf+lV^5c!ZEz%_wz78$RQk8>_$a1l)VuJE& znR!|H*>E4%`W@~gasV!^d0IuAfa$S2MnJAS!AwzN5cPi^UE-Ee(|P7UPTT1d()J+jGW6BT^1Q> zkqv^g)Ai(4VogKoruS=U0i8-yb6Q&UpQa_hZ-3@zqAYBC>Szm*!dL2w3ss&xou> z2G@C`A4}RF%Y1Ky!s;g?!yu!)$Q%7kBFgjiuj+T5e?(48GGyhFSNgc24e2ULT;9@% z?m&VJBl@oVw!G{WiTu(#r3vd%Ql=cdCI@+P#*$b1hB5U%q$<|4QoNJbng_)?F=xhG zi&?9gQA>;8`cKmN4ryiUvdU2FAR{8z82vDFwn=uPISgWbW-aZ)Shm)As!piiNQ9y4PL}bAF%X3Y6@sk;uR^cf0I-E!i3+YnAeAM=5*d zxI9TIDqoB{m+s|Z3~gI#0iK~9SYBmIzdn+6yPR@lC=H15KBIe86{~w(S3NRXG#U8? zB*n2|Ar3!RB6&Y0x`^!)JIU~eJzm*=lqn@6^Rt`|5|m}88T14&rr|q8)1GE6Jvl8T z*e7(kc2>UlYomTxniv=K`+bpE1pWRT78sRjDI=q{9zy=8%tRUGx&Ek3KpFW_nRPN0 zstBn1mIYlgG6!WuzuPon>nkQSV^qRNC85+O)$?bmkL-a2)ub3-DwPrgmgy|R@JDuv zvNN$oA%B1Co0UI*mRc@_!pow|L`&J}k5A06$@TSoR^roxzNfKR)ppp`n^)F6Xa&tq z$n^*Pp$9tSdsp}?rDvaXW+J5{At zNtIz+SjvHLqQ;TGOCro|Qpun%@A{FAa<*AoYQ}qT$wJ0&s%MD&P81#Jh9{a?uA7-5 z3*fLn@O0$YqK=a2bkST^v`)S|q$wBHK`mGPk5BCOiJ=r2kry!fOVRoB&^_LId8ZUS zj9wq!5xao(2s9m$OaK1IU5c z-st1es46acUX$FWdAb9Ol=*j-R~xb@EeMYD^c$;=^q5 zq&_TfW=u!&sCdAP{LbRiK19=WWa;yc$h@vbOW~?4N0OSTI0o~)7H51OkBr7(3y)EM zx9FsW$6G%}{rc+fQNIyUOGf=@b=<1{F8TFOM<}yJN()cqZW*L4JdXlImO1jpJSrV8 z`=#P*4@wQSGNUs^A+Y1$D%2niDXH*wC`*m_B(c%59>gC#DN==1?;F#hGc_i#&9p?1 ziL4H>)YG1aYe$M*eYd$``0Ak|UvzMD$=V-phnXESPUI`N*q|;rKl-TT+4Fg+mOmbb z$V_}ah_50DUxu*g7M)d~gv%cF$3uux=bvU&8yz*)AAgFYTI;Br{qgpRsQjFi$o*0< z<=oyMFHXp`5}Er%rXtH(x^8>R+CYX3cpV5tD}qoYdNdGyMil0oT8DW*+n5eB3N?=| zhZZAp^Ngu)BeGYHqiK>(`NlEo`*Mn`GNRv+GJR94kU=xU_XrN^Uy*Fen){-yCBf8# zLYf=Cich2qKay#^(RDCB%)GOREnpny*GM7qRQL&m9@rSNEkty==gWgvHZ&aQ{gZDw^pmz z#sd`H3r@MHsYNa}t(*E%}nfU%Hm5CI}m(f}ey7)RVa4j1Bg$%`t zmPRP1Yg%fAZnBPaHorw`R8?xMEC>CwTdK00>-$52t>iOCKGWrc{_2Tq67DL;OLfti z0Y^PC(3IT;)H$H8{Oz&?hHhKd`o!JphU7)$aZ0~YaD|o>Ia;EoU~l9ak#{uYVHYS$kmpxc#c1R_^U8QLJKcS%I4p8lJZ zts9<|maO4v@wN%KbF5F)n#e$jr8(x(u4Wp{r{#HOIeBJH+Ul;fN;ebRlQqk?(ei1IRlrTAzVeO82U5k_ z7eqI?sYWo>Wix6Kp;roGSQyLougaIv&dN|3hFVr+>&uVkNJxwKu)3!D&td=xvy5et zS*octQYFolSy-(YL(Nt0uBCuE0IQXTcs+$BB;gLfZF-@|In{rmDQ3GQN44vM4VU=$(8Nn(J{1|xF$80?s^pER zDMB=$&)-&f($;v|j*}qH?Jo!yKkW9|xVF_%K99&JF?L>)K+>^;nF}+P8j$8-iN9eR zF}#F|yTS-k+egZB)FN|;k!Y&UEIZv{uFXt+o312XYXIGU1%Ifnm|Ln;deKR(N=fD6 z8z-iCJkPNnEFa>P$b=rQmOxTHWJ<(;=R?%qnQ6kN=l_=;&JS27T;4umzjFD|?N&oA z^jL_$W-Gm)5qj8cwSB(Q!E`&nl8I5RNM*5$1#r4r0Gk>y(j#rfe8iX7Bdf|avUIon zk5;I+1eME1YpgY_xi&NP{y~Pvvr_3DGrgR0Oii@7jS&e7D~J8~4YNe}(RzkkKuQO6y#*ZYusVSZ7K`AS888z0L(DLcgRWj*z zD9cOBugOZw>n7(gSb^&@Djqi?a=Vqec4=8VJ`E=t0jaN=_mpHHQYjKr^?_E^%bT02 z9PJvOh(xn5!V3KHAG)AdXERJ-{AR?cVe=of72hIKem$dzn69WgK{gAvYG$9ICB|%g zqn&mrcZiB~I51sA3nPq0t!vC_!}GVSO~sl(t3?{tAJtcef1_D1b55x30XgT~=~er- z(a)su@!{CPy(nY;x+l}5^R?5K?1m(=lerkDUlo;H<-{mzkWr*g(S$(Ms+7KkMpwQx zzR7O=e^T&UF0m^qIKJK%ODNc{c6Q@)P<7Rj9h+3yG7oEZiWF!Is7D&5y{{Q@6=)_A z>{oBOSjWR%$le*5UPuO#7MMVy}3M)}6&xX*4Ff3iGLH>E`@- zmFbXPcQ;sBZoI*U%?;^e=hDU>|9+zUZdWYP&&FX_Uu{+>o%Bm|^)yEX)p9~_U`V{Z zoG>e{R~3e(;rkMm`8w%tn=DqS(JD9W#9dXBf2~}U4rSJ~?k*E~j#h@;{-O{3@%ts) z_;}>4dc22Y2x+Vu(A>}g<&RRNXU!^D<{$=t2QnIw$OuODm3A4}jM27{W0{RNqE>0~ zUrLne4cb$d+NU{}LQ=@wL{=dqj8iymTwdjtqJKceyb;qWjZ4V(HnWZ^qzp692vsEv zQ#siG;ES-Oq#IDu#13>av&+n8`Qzo1B3^-HN~^t%ct-?O(Xw>r#g>YMqOsVTX4T7{ zVM>u*St7fE&g{Axx*&P=i)#UgJnbr6A!D^grg|9trTWCV%~j%DswX6irhIttXXFtZSV+yEOZMs?l4xXfuE$>{tx#(|N2Xo>l5h-aC1rXpYZ0Ya*IKdH7~z?Yim7e3=VcXe zU16fIJXJ4m^b@E^){&U56ZI>9$OwNgX$GIjTG6>Z*JoD(ByXu~rCJl6Qz7nxZ?Sr_ z`gVw0>u5c}U3Wj2o+H(w3}^1%cv$9AHLIFe*b23@;?CG9vc+O(@0>_�R6qMA#cI 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

    f=!PF6Nh&o{EfT;tf4wyP%>VT;OrVg08 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 + + + AngleSharp + + + + + The various DOM object accessor types. + + + + + Specifies that the property does not have any special meaning. + + + + + Specifies that the property or method should be handled as a getter. + + + + + Specifies that the property or method should be handled as a setter. + + + + + Specifies that the property or method should be handled by delete. + + + + + Specifies that the method should be handled as an event adder. + + + + + Specifies that the method should be handled by an event remover. + + + + + This attribute decorates official DOM objects as specified by the W3C. + You could use it to check if the given property or method should be + placed on special locations, e.g. as a getter, setter or handled by a + delete call. + + + + + Creates a new DomAccessorAttribute. + + + The type of accessors to apply. + + + + + Gets the accessor types for the given property or method. + + + + + This attribute is used to mark a constructor as being + accessible from scripts. + + + + + This attribute is used to place a description on some object. + The description can then be read out at runtime. + + + + + Creates a new DomDescriptionAttribute. + + + The description of the decorated type or member. + + + + + Gets the official name of the given class, + method or property. + + + + + This attribute is used to determine the hosting interface. + + + + + Creates a new DomExposedAttribute. + + + The official name of the target interface. + + + + + Gets the official name of the target interface. + + + + + This attribute decorates official DOM objects that should no longer be + used and are therefore considered deprecated. + + + + + This attribute decorates official DOM methods as specified by the W3C. + It tells scripting engines that bags with objects should be provided, + which have to be expanded to be used as arguments. + + + + + Creates a new DomInitDict attribute. + + The start index of the dictionary. + Has a dictionary to be present? + + + + Gets the offset of the passed arguments. Arguments before the offset + will be skipped and are not part of the dictionary. + + + + + Gets if the dictionary is completely optional and does not have to + be present. + + + + + Represents a single instance object. + + + + + Creates a new instance. + + The name to use. + + + + Gets the name of the variable. + + + + + The attribute indicates that invocations of the attribute's getter + or setter with a this value that is not an object that implements + the interface on which the attribute appears will be ignored. + + + + + This attribute is used to mark an enum as being just a collection of + constant string values (with the names being the strings). + + + + + This attribute decorates official DOM objects as specified by the W3C. + You could use it to detect all DOM types or get the correct spelling + (PascalCase to camelCase). Multiple usages are allowed. + + + + + Creates a new DomNameAttribute. + + + The official name of the decorated type or member. + + + + + Gets the official name of the given class, method or property. + + + + + This attribute appears on an interfaces, which must not be available + in the ECMAScript binding. + + + + + Decorates a read only attribute declaration whose type is an interface + type. It indicates that assigning to the attribute will have specific + behavior. Namely, the assignment is "forwarded" to the named attribute. + + + + + Creates a new DomPutForwardsAttribute. + + + The official name of the property to forward to. + + + + + Gets the official name of the property to forward assignments to. + + + + + An enumeration over all possible cache states. + + + + + The resource is uncached. + + + + + The cache status checker is idle. + + + + + The cache status is being checked. + + + + + The resource is being downloaded. + + + + + An update for the resource is available. + + + + + The resource is practically obsolete. + + + + + The event that is published in case of an interactivity + request coming from the dynamic DOM. + + + + + Creates a new event for an interactivity request. + + The name of the event. + The data to be transported. + + + + Gets the currently set result, if any. + + + + + Sets the result to the given value. Multiple results + will be combined accordingly. + + The resulting task. + + + + Gets the transported data. + + + + + The event that is published in case of a tracking + possibility (e.g., errors) coming from the dynamic DOM. + + + + + Creates a new event for a tracking request. + + The name of the event. + The error to be transported. + + + + Provides a way to cache web resources to improve performance, reduce + server loads, and enable access to content when there is no network + connectivity. + + + + + Gets the status of the application cache. + + + + + Performs an update of the application cache. + + + + + Aborts the current action (download / update) of the cache. + + + + + Swaps the application's cache. + + + + + Event triggered when the cache is being checked. + + + + + Event triggered after an error occurred. + + + + + Event triggered after no update is available. + + + + + Event triggered when the download started. + + + + + Event triggered after progress. + + + + + Event triggered after an update is ready to be applied. + + + + + Event triggered after the cache has been updated. + + + + + Event triggered after the cache has been marked obsolete. + + + + + The History interface allows to manipulate the browser session history, + that is the pages visited in the tab or frame that the current page is + loaded in. + + + + + Gets the number of elements in the session history, including the + currently loaded page. + + + + + Gets the index within the session history. + + + + + Gets the document at the given position of the history. + + The position within the history. + The document related to that position. + + + + Gets an any value representing the state at the top of the history + stack. + + + + + Loads a page from the session history, identified by its relative + location to the current page, for example -1 for the previous page + or 1 for the next page. When integerDelta is out of bounds (e.g. -1 + when there are no previously visited pages in the session history), + the method doesn't do anything and doesn't raise an exception. + Calling go() without parameters or with a non-integer argument has + no effect. + + The number of states to surpass. + + + + Goes to the previous page in session history, the same action as + when the user clicks the browser's Back button. Equivalent to + history.go(-1). + + + + + Goes to the next page in session history, the same action as when + the user clicks the browser's Forward button; this is equivalent to + history.go(1). + + + + + Pushes the given data onto the session history stack with the + specified title and, if provided, URL. The data is treated as + opaque by the DOM. + + The data to use. + The title to take. + The URL to consider. + + + + Updates the most recent entry on the history stack to have the + specified data, title, and, if provided, URL. The data is treated + as opaque by the DOM. + + The data to use. + The title to take. + The URL to consider. + + + + Represents the navigator information of a browsing context. + + + + + A set of utilities to modify the navigator's behavior. + + + + + Allows web sites to register themselves as possible handlers for particular protocols. + + The protocol the site wishes to handle, specified as a string. + The URI to the handler as a string. + The title of the handler presented to the user as a string. + + + + Allows web sites to register themselves as possible handlers for content of a particular MIME type. + + The desired MIME type as a string. + The URI to the handler as a string. + The title of the handler presented to the user as a string. + + + + Checks if any handler is registered at the given URI for the specified scheme. + + The scheme to check for. + The URI to the handler. + True if a handler is registered, otherwise false. + + + + Checks if any handler is registered at the given URI for the specified mime-type. + + The mime-type to check for. + The URI to the handler. + True if a handler is registered, otherwise false. + + + + Removes the specified protocol handler, if any. + + The name of the handled scheme to remove. + The URI to the handler of the scheme. + + + + Removes the specified content handler, if any. + + The name of the handled mime-type to remove. + The URI to the handler of the mime-type. + + + + Holds the user-agent information. + + + + + Gets the name of the application. + + + + + Gets the version of the application. + + + + + Gets the platform of the application. + + + + + Gets the full name of the user-agent. + + + + + Connectivity information regarding the navigator. + + + + + Gets if the connection is established. + + + + + Defines a set of methods for working with IO. + + + + + Blocks the current operation until storage operations have completed. + + + + + Implementation of an encoding meta handler. + + + + + Create a new instance of the EncodingMetaHandler + + This will initialize additional encoding providers to correctly support all encodings + + + + Gets the associated encoding, if any. + + The element to get the encoding from. + The discovered encoding or null. + + + + A set of useful extensions for the event loop. + + + + + Enqueues another action without considering the cancellation token. + + The loop to extend. + The action to enqueue. + The priority of the item. + + + + Enqueues another function with respecting the async nature. + Exceptions will be emitted respectively. + + The loop to extend. + The action to enqueue. + The priority of the item. + A task that is completed when the action has been invoked. + + + + Represents a command that can be executed from the document. + + + + + The id of the command. + + + + + Executes the command for the given document. + + The document to alter. + Should the UI be shown? + The argument value. + A boolean if the command could be run. + + + + Checks if the command is currently enabled. + + The document to apply to. + A boolean if the command is enabled. + + + + Checks if the command is currently neither enabled nor disabled. + + The document to apply to. + A boolean if the command is indeterminate. + + + + Checks if the command has been run already. + + The document to apply to. + A boolean if the command has already been applied. + + + + Checks if the command is currently supported at all. + + The document to apply to. + A boolean if the command is supported. + + + + Gets the value that would be changed at the moment. + + The document to apply to. + The value that would be used by the command. + + + + Represents a provider to get document commands. + + + + + Gets the command with the given id. + + The id of the command. + The document command if any. + + + + Represents a service to determine the default encoding. + + + + + Suggests the initial Encoding for the given locale. + + + The locale defined by the BCP 47 language tag. + + The suggested encoding. + + + + Represents the DOM event loop processing stages and steps of algorithms. + See 7.1.4.2 Processing model. + + + + + Enqueues a given task with the associated document. + + The continuation action to enqueue. + The priority to use. + The created loop entry. + + + + Spins the event loop. + + + + + Cancels all running and remaining tasks. + + + + + Defines the interface to be used for handling meta data. + + + + + Handles the content of the given HTML meta element. + + The meta element. + + + + Defines a handler for navigation requests. + + + + + Determines if the given protocol is supported by + the current handler. + + The protocol of the navigation target. + True if the protocol is supported, otherwise false. + + + + Performs the navigation with respect to a given request. + + The navigation request. + The cancellation token. + + The task yielding a document representing the navigation result. + + + + + Defines the basic events for all parsers. + + + + + Fired when a parser is starting. + + + + + Fired when a parser is finished. + + + + + Fired when a parse error is encountered. + + + + + Provides a spell correction service. + + + + + Gets the culture for the spell check service. + + + + + Ignores the word. + + The word to ignore. + If true, should be added to dictionary. Otherwise false. + + + + Checks if the given word is correct. + + The word to check. + True if the word is correctly spelled, otherwise false. + + + + Suggests correct spellings for the given word. + + The base word. + An enumeration over possibly right variants. + + + + Represents the default loader service. This class can be inherited. + + + + + Suggests the initial Encoding for the given locale. + + + The locale defined by the BCP 47 language tag. + + The suggested encoding. + + + + Implementation of a refresh handler. + + + + + Creates a new instance of the refresh meta handler. + + Optionally defines a predicate. + + + + Setting used to restrict the abilities that potentially + untrusted resources have. + + + + + No flag is set, everything is accepted. + + + + + This flag prevents content from navigating browsing contexts + other than the sandboxed browsing context itself (or browsing + contexts further nested inside it), auxiliary browsing contexts + (which are protected by the sandboxed auxiliary navigation + browsing context flag defined next), and the top-level browsing + context (which is protected by the sandboxed top-level navigation + browsing context flag defined below). + + + + + This flag prevents content from creating new auxiliary browsing + contexts, e.g. using the target attribute, or the window.open() + method. + + + + + This flag prevents content from navigating their top-level browsing + context and prevents content from closing their top-level browsing + context. + + + + + This flag prevents content from instantiating plugins, whether using + the embed element, the object element, the applet element, or through + navigation of a nested browsing context, unless those plugins can be + secured. + + + + + This flag forces content into a unique origin, thus preventing it + from accessing other content from the same origin. + + + + + This flag blocks form submission. + + + + + This flag disables the Pointer Lock API. + + + + + This flag blocks script execution. + + + + + This flag blocks features that trigger automatically, such as automatically + playing a video or automatically focusing a form control. + + + + + This flag prevents content from using the requestFullscreen() method. + + + + + This flag prevents content from using the document.domain feature to change + the effective script origin. + + + + + This flag allows the sandboxed content to run presentational content. + + + + + Describes the various task priorities. + + + + + The lowest possible priority. + + + + + The normal priority. + + + + + Microtasks are preferred. + + + + + Critical tasks are always executed asap. + + + + + A simple and lightweight browsing context. + + + + + Creates a new browsing context with the given configuration, or the + default configuration, if no configuration is provided. + + + This constructor was only added due to PowerShell. See #844 for details. + + The optional configuration. + + + + Gets or sets the currently active document. + + + + + Gets the document that created the current context, if any. The + creator is the active document of the parent at the time of + creation. + + + + + Gets the original services for the given browsing context. + + + + + Gets the current window proxy. + + + + + Gets the parent of the current context, if any. If a parent is + available, then the current context contains only embedded + documents. + + + + + Gets the session history of the given browsing context, if any. + + + + + Gets the sandboxing flag of the context. + + + + + Gets an instance of the given service. + + The type of service to resolve. + The instance of the service or null. + + + + Gets all registered instances of the given service. + + The type of service to resolve. + An enumerable with all service instances. + + + + Creates a new named browsing context as child of the given parent. + + The name of the child context, if any. + The security flags to apply. + + + + + Finds a named browsing context. + + The name of the browsing context. + The found instance, if any. + + + + Creates a new browsing context with the given configuration, or the + default configuration, if no configuration is provided. + + The optional configuration. + The browsing context to use. + + + + Creates a new browsing context from the given service. + + The service instance. + The browsing context to use. + + + + A set of extensions for the browsing context. + + + + + Opens a new document without any content in the given context. + + The browsing context to use. + The optional base URL of the document. By default "http://localhost/". + The cancellation token (optional) + The new, yet empty, document. + + + + Opens a new document created from the response asynchronously in + the given context. + + The browsing context to use. + The response to examine. + The cancellation token. + The task that creates the document. + + + + Opens a new document loaded from the specified request + asynchronously in the given context. + + The browsing context to use. + The request to issue. + The cancellation token. + The task that creates the document. + + + + Opens a new document loaded from the provided url asynchronously in + the given context. + + The browsing context to use. + The URL to load. + The cancellation token. + The task that creates the document. + + + + Opens a new document loaded from a virtual response that can be + filled via the provided callback. + + The browsing context to use. + Callback with the response to setup. + The cancellation token. + The task that creates the document. + + + + Opens a new document loaded from the provided address asynchronously + in the given context. + + The browsing context to use. + The address to load. + The cancellation token (optional) + The task that creates the document. + + + + Plan to navigate to an action using the specified method with the given + entity body of the mime type. + http://www.w3.org/html/wg/drafts/html/master/forms.html#plan-to-navigate + + The browsing context. + The request to issue. + + A task that will eventually result in a new document. + + + + Navigates to the given document. Includes the document in the + session history and sets it as the active document. + + The browsing context to use. + The new document. + + + + Gets the navigation handler that supports the provided protocol. + + The browsing context to use. + The URL to navigate to. + The found navigation handler, if any. + + + + Gets the default encoding to use as initial guess. + + The current context. + The encoding from the provider or UTF-8. + + + + Gets the culture info associated with the current context. + + The current context. + The culture info assigned to the context. + + + + Gets the culture from the language string (or the current culture). + + The current context. + The ISO culture name. + + The culture info representing the language or the current culture. + + + + + Gets the language of the current context. + + The current context. + The ISO name of the culture. + + + + Gets a factory service instance. Exactly one has to be available. + + The type of the factory service. + The current context. + The factory instance. + + + + Gets a provider service instance. At most one has to be available. + + The type of the provider service. + The current context. + The provider instance or null. + + + + Gets a resource service. Multiple resource services may be registered, so + the one that matches the given mime-type will be returned, if any. + + The type of the resource service. + The current context. + The mime-type of the resource. + The service instance or null. + + + + Gets the cookie for the given URL, if any. + + The current context. + The URL of the cookie. + The cookie or the empty string. + + + + Sets the cookie for the given URL. + + The current context. + The URL of the cookie. + The cookie value to set. + + + + Gets the spell check service for the given language, if any. + + The current context. + The language of the spellchecker. + The spell check service, if any. + + + + Tries to get the CSS styling service, if available. + + The current context. + The CSS styling service if any. + + + + Tries to get the styling service for the given mime-type. + + The current context. + The type of the style engine. + The styling service if any. + + + + Gets if the context allows scripting or not. + + The current context. + True if a scripting provider is available, otherwise false. + + + + Tries to get the JavaScript service, if available. + + The current context. + The JavaScript scripting service, if any. + + + + Tries to get the scripting service for the given mime-type. + + The current context. + The type of the scripting language. + The scripting service, if any. + + + + Tries to get the command with the given name. + + The current context. + The command to get. + The command if any. + + + + Notifies the context of an exception that was handled internally. + + The current context. + The exception to notify. + + + + Fires an interactive event at the given context. + + The type of interactivity payload. + The current context. + The name of the event to fire. + The data to transport. + The task with the response to the event. + + + + Resolves the given target context. + + The current context. + The desired target frame. + The target context. + + + + Creates the specified target browsing context. + + The current context. + The specified target name. + The new context. + + + + Gets the specified target browsing context. + + The current context. + The specified target name. + + The available context, or null, if the context does not exist yet. + + + + + Checks if the context is waiting for tasks from originator of type + T to finish downloading. + + The context to use. + Enumerable of awaitable tasks. + + + + Common methods and variables of all tokenizers. + + + + + Creates a new instance of the base tokenizer. + + The source to tokenize. + + + + Gets the current insertion point. + + + + + Gets the current source index. + + + + + Gets the current character. + + + + + Gets the allocated string buffer. + + + + + Gets if the current index has been normalized (CRLF -> LF). + + + + + Flushes the buffer. + + The content of the buffer. + + + + Disposes the tokenizer by releasing the buffer. + + + + + Gets the current text position in the source. + + The (row, col) position. + + + + Checks if the source continues with the given string. + The comparison is case-insensitive. + + The string to compare to. + True if the source continues with the given string. + + + + Checks if the source continues with the given string. + The comparison is case-sensitive. + + The string to compare to. + True if the source continues with the given string. + + + + Gets the string formed by the next characters. + + The length of the string. + The upcoming string. + + + + Skips the next space character(s). + + The upcoming first non-space. + + + + Gets the next character in the source by advancing. + + The next char. + + + + Gets the previous character in the source by going back. + + The previous char. + + + + Advances in the source by 1 character if possible. + + + + + Advances in the source by n characters or less if possible. + + The positive number of characters. + + + + Goes back in the source by 1 character if possible. + + + + + Goes back in the source by n characters or less if possible. + + The positive number of characters. + + + + Implemented by OM classes that may change internal state reflected with + a changed string representation. + + + + + Triggered when the internal state changed. + + + + + Update the string representation without calling Changed. + + The representation's new value. + + + + Represents a cancellable task with result. + + + + + Gets the associated awaitable task. + + + + + Represents a cancellable task without result. + + + + + Cancels the covered task. + + + + + Gets if the task has already completed. + + + + + Gets if the task is (still) running. + + + + + The collection of used keywords and strings. + + + + + The url keyword. + + + + + The on keyword. + + + + + The off keyword. + + + + + The of keyword. + + + + + The yes keyword. + + + + + The no keyword. + + + + + The top keyword. + + + + + The any keyword. + + + + + The PUBLIC keyword. + + + + + The SYSTEM keyword. + + + + + The "[CDATA[" keyword. + + + + + The replace keyword. + + + + + The alternate keyword. + + + + + The odd keyword. + + + + + The even keyword. + + + + + The 2d keyword. + + + + + The webgl keyword. + + + + + Some methods for working with bare objects. + + + + + Transforms the values of the object into a dictionary of strings. + + The object instance to convert. + A dictionary mapping field names to values. + + + + Gets an item from the enumerable by its index. Throws an exception + if the provided index is invalid. + + The type of enumerable. + The items to iterate over. + The index to look for. + The item at the specified index. + + + + Returns the concatenation of the provided enumerable with the + specified element. The item is added to the beginning. + + The type of the enumeration. + The items. + The item to concat. + The new enumerable. + + + + Returns the removal of the specified element from the provided + enumerable. + + The type of the enumeration. + The items. + The item to remove. + The new enumerable. + + + + Tries to obtain the given key, otherwise returns the default value. + + The struct type. + The dictionary for the lookup. + The key to look for. + A nullable struct type. + + + + Tries to obtain the given key, otherwise returns null. + + The dictionary for the lookup. + The key to look for. + An object instance or null. + + + + Gets the value of the given key, otherwise the provided default + value. + + The type of the keys. + The type of the value. + The dictionary for the lookup. + The key to look for. + The provided fallback value. + The value or the provided fallback. + + + + Constraints the given value between the min and max values. + + The value to limit. + The lower boundary. + The upper boundary. + The value in the [min, max] range. + + + + Retrieves a string describing the error of a given error code. + + A specific error code. + The description of the error. + + + + Represents context configuration for the AngleSharp library. Custom + configurations can be made by deriving from this class, just + implementing IConfiguration or modifying an instance of this specific + class. + + + + + Creates a new immutable configuration. + + The services to expose. + + + + Gets the default configuration to use. The default configuration + can be overriden by calling the SetDefault method. + + + + + Gets an enumeration over the registered services. + + + + + A set of useful extensions for Configuration (or derived) objects. + + + + + Returns a new configuration that includes the given service. + + The configuration to extend. + The service to register. + The new instance with the service. + + + + Returns a new configuration that includes only the given service, + excluding other instances or instance creators for the same service. + + The service to include exclusively. + The configuration to extend. + The service to include. + The new instance with only the given service. + + + + Returns a new configuration that includes only the given service + creator, excluding other instances or instance creators for the same + service. + + The service to include exclusively. + The configuration to extend. + The service creator to include. + The new instance with only the given service. + + + + Returns a new configuration that excludes the given service. + + The configuration to extend. + The service to unregister. + The new instance without the service. + + + + Returns a new configuration that includes the given services. + + The configuration to extend. + The services to register. + The new instance with the services. + + + + Returns a new configuration that excludes the given services. + + The configuration to extend. + The services to unregister. + The new instance without the services. + + + + Returns a new configuration that includes the given service creator. + + The type of service to create. + The configuration to extend. + The creator to register. + The new instance with the services. + + + + Returns a new configuration that excludes the given service creator. + + The type of service to remove. + The configuration to extend. + The new instance without the services. + + + + Checks if the configuration holds any references to the given service. + + The type of service to check for. + The configuration to examine. + True if any service / creators are found, otherwise false. + + + + Registers the default loader service, if no other loader has been registered yet. + + The configuration to extend. + Configuration for the loader service. + The new configuration with the service. + + + + Returns a new configuration that uses the culture with the provided + name. + + The configuration to extend. + The name of the culture to set. + The new instance with the culture being set. + + + + Returns a new configuration that uses the given culture. Providing + null will reset the culture to the default one. + + The configuration to extend. + The culture to set. + The new instance with the culture being set. + + + + Registeres a handler to include the meta data refresh. + + The configuration to extend. + The optional callback. + The new instance with the service. + + + + Registeres the default encoding determination algorithm, as + specified by the W3C. + + The configuration to extend. + The new instance with the service. + + + + Registers the default cookie service if no other cookie service has + been registered yet. + + The configuration to extend. + The new instance with the service. + + + + The collection of known CSS selector combinator symbols. + + + + + The "=" attribute combinator. + + + + + The "!=" attribute combinator. + + + + + The "~=" attribute combinator. + + + + + The "|=" attribute combinator. + + + + + The "^=" attribute combinator. + + + + + The "$=" attribute combinator. + + + + + The "*=" attribute combinator. + + + + + The "||" combinator. + + + + + The "|" combinator. + + + + + The "+" combinator. + + + + + The " " combinator. + + + + + The ">>>" combinator. + + + + + The ">" combinator. + + + + + The "~" combinator. + + + + + Represents the standard CSS3 style formatter. + + + + + An instance of the CssStyleFormatter. + + + + + Provides string to CSS attribute selector instance mappings. + + + + + Represents a creator delegate for creating an attribute selector. + + The name of the attribute. + The value of the attribute. + The prefix for the attribute. + Sets the evaluation mode. + + + + + Registers a new creator for the specified combinator. + Throws an exception if another creator for the given + combinator is already added. + + The used CSS combinator. + The creator to invoke. + + + + Unregisters an existing creator for the given combinator. + + The used CSS combinator. + The registered creator, if any. + + + + Creates the default CSS attribute selector for the given options. + + The name of the attribute. + The used value, if any. + The given prefix, if any. + Should be evaluated insensitive. + The selector with the given options. + + + + Creates the associated CSS attribute selector. + + The used CSS combinator. + The name of the attribute. + The used value, if any. + The given prefix, if any. + Should be evaluated insensitive. + The associated selector. + + + + Provides string to CSS pseudo class selector instance mappings. + + + + + Registers a new selector for the specified name. + Throws an exception if another selector for the given + name is already added. + + The name of the CSS pseudo class. + The selector to register. + + + + Unregisters an existing selector for the given name. + + The name of the CSS pseudo class. + The registered selector, if any. + + + + Creates the default CSS pseudo class selector for the given + name. + + The name of the CSS pseudo class. + The selector with the given name. + + + + Creates or gets the associated CSS pseudo class selector. + + The name of the CSS pseudo class. + The associated selector. + + + + Provides string to CSS pseudo element selector instance mappings. + + + + + Registers a new selector for the specified name. + Throws an exception if another selector for the given + name is already added. + + The name of the CSS pseudo element. + The selector to register. + + + + Unregisters an existing selector for the given name. + + The name of the CSS pseudo element. + The registered selector, if any. + + + + Creates the default CSS pseudo element selector for the given + name. + + The name of the CSS pseudo class. + The selector with the given name. + + + + Creates or gets the associated CSS pseudo element selector. + + The name of the CSS pseudo element. + The associated selector. + + + + Represents a CSS medium. + + + + + Gets the type of medium that is represented. + + + + + Gets if the medium has been created using the only keyword. + + + + + Gets if the medium has been created using the not keyword. + + + + + Gets a string describing the covered constraints. + + + + + Gets an enumerable of contained features. + + + + + Represents a CSS media feature. + + + + + Gets the name of the feature. + + + + + Gets if the feature represents the minimum. + + + + + Gets if the feature represents the maximum. + + + + + Gets the value of the feature, if any. + + + + + Gets if a value has been set for this feature. + + + + + A collection of media queries. + + + + + Gets or sets the parsable textual representation of the media list. + This is a comma-separated list of media. + + + + + Gets the number of media in the list. + + + + + Gets the medium item at the specified index. + + Index into the collection. + + The medium at the index-th position in the MediaList, + or null if that is not a valid index. + + + + + Adds the medium to the end of the list. If the medium is already used, + it is first removed. + + The new medium to add. + + + + Deletes the medium indicated from the list of media queries. + + The medium to delete from the list. + + + + Base class for all nth-child (or related) selectors. + + + + + Represents a complex selector, i.e. one or more compound selectors + separated by combinators. + + + + + Represents a compound selector, which is a chain of simple selectors + that are not separated by a combinator. + + + + + The nth-child selector. + + + + + The nth-column selector. + + + + + The nth-of-type selector. + + + + + The nth-lastchild selector. + + + + + The nth-last-column selector. + + + + + The nth-last-of-type selector. + + + + + Represents a group of selectors, i.e., zero or more selectors separated + by commas. + + + + + A list of selectors, which is the basis for CompoundSelector and + SelectorGroup. + + + + + Represents a CSS selector for matching elements. + More information: http://dev.w3.org/csswg/selectors4/ + + + + + Determines if the given object is matched by this selector. + + The element to be matched. + The selector scope. + + True if the selector matches the given element, otherwise false. + + + + + Gets the string representation of the selector. + + + + + Gets the specificity of the given selector. + + + + + Accepts a selector visitor to expose more information. + + The visitor for showing around. + + + + A set of extension methods for selectors. + + + + + Returns the first element within the given elements (using depth-first + pre-order traversal) that match the selectors with the given scope. + + A selector object. + The elements to take as source. + The element to take as scope. + The resulting element or null. + + + + Returns the elements within the given elements (using depth-first + pre-order traversal) that match the selectors with the given scope. + + A selector object. + The elements to take as source. + The element to take as scope. + The collection containing the resulting elements. + + + + Provides an alternate to that sets the + scope to the owning document element (if there is one). + + The selector. + The element to match against. + The result of the match. + + + + A set of extension methods for style / related methods. + + + + + Gets all possible style sheet sets from the list of style sheets. + + The list of style sheets. + An enumeration over all sets. + + + + Gets the enabled style sheet sets from the list of style sheets. + + The list of style sheets. + An enumeration over the enabled sets. + + + + Sets the enabled style sheet sets in the list of style sheets. + + The list of style sheets. + The name of the set to enabled. + + + + Creates a new StyleSheetList instance for the given node. + + The node to get the StyleSheets from. + The new StyleSheetList instance. + + + + Creates a new StringList instance with stylesheet sets for the given + node. + + The node to get the sets from. + The new StringList instance. + + + + Gets an enumeration over all the stylesheets from the given parent. + + The parent to use. + The enumeration over all stylesheets. + + + + Tries to find the matching namespace url for the given prefix. + + The list of style sheets. + The prefix of the namespace to find. + + + + Represents a factory for attribute selectors. + + + + + Creates a new attribute selector from the given arguments. + + The used combinator. + The name of the attribute. + The provided value. + The prefix, if any. + Should be evaluated insensitive. + The created selector, if possible. + + + + Represents a factory for pseudo-class selectors. + + + + + Creates a new pseudo-class selector for the given name. + + The name of the pseudo-class. + The created selector, if any. + + + + Represents a factory for pseudo-element selectors. + + + + + Creates a new pseudo-element selector for the given name. + + The name of the pseudo-element. + The created selector, if any. + + + + Describes the interface for visiting a selector. + + + + + Visited by attribute selectors. + + The name of the attribute. + The operator, if any. + The value, if any. + + + + Visited by type selectors. + + The name of the type or *. + + + + Visited by id selectors. + + The value of the id. + + + + Visited by child selectors. + + The name of the selector. + The step parameter. + The offset parameter. + The applied inner selector, if any. + + + + Visited by class selectors. + + The name of the class. + + + + Visited by pseudo-class selectors. + + The name of the pseudo class. + + + + Visited by pseudo-element selectors. + + The name of the pseudo element. + + + + Visited by comma-separated list selectors. + + The contained selectors. + + + + Visited by combinator selectors. + + The contained N selectors. + The N - 1 combinator symbols. + + + + Visited by aggregated / combined selectors. + + The combined selectors. + + + + Defines the API of an available engine for computing the stylesheet. + + + + + Checks if the given type is supported. + + The type of the style. + True if the type is supported, otherwise false. + + + + Parses a style sheet for the given response asynchronously. + + + The response with the stream representing the source of the + stylesheet. + + + The options with the parameters for evaluating the style. + + The cancellation token. + The task resulting in the style sheet. + + + + An enumeration with possible CSS combinator values. + + + + + The child operator (>). + + + + + The deep combinator (>>>). + + + + + The descendent operator (space, or alternatively >>). + + + + + The adjacent sibling combinator +. + + + + + The sibling combinator ~. + + + + + The namespace combinator |. + + + + + The column combinator ||. + + + + + Gets the transformation function for the combinator. + + + + + Gets the delimiter that represents the combinator. + + + + + Changes the selector on the LHS according to some special rules. + + The original selector. + The modified (or unmodified) selector. + + + + Class for construction for CSS selectors as specified in + http://www.w3.org/html/wg/drafts/html/master/selectors.html. + + + + + The various parsing states. + + + + + Allows the simply creation of CSS selectors. + + + + + Creates a new selector parser. + + + + + Creates a new selector parser using the different factories. + + + + + Takes a string and transforms it into a selector object. + + + + + The CSS selector token. + + + + + Contains some useful extension methods for the StringSource + from the perspective of the CSS micro parsers. + + + + + Skips all characters to the end of a CSS comment. Assumes the + start of a CSS comment has been seen. + + + + + Consumes the escape sequence if any. Assumes, the source currently being at a + solidus (valid escape). + + + + + Checks if the current position holds a valid escape. + + + + + The CSS tokenizer. + See http://dev.w3.org/csswg/css-syntax/#tokenization for more details. + + + + + Gets the next available token. + + + + + 4.4.1. Data state + + + + + 4.4.2. Double quoted string state + + + + + 4.4.3. Single quoted string state + + + + + 4.4.4. Hash state + + + + + 4.4.5. Hash-rest state + + + + + 4.4.7. At-keyword state + + + + + 4.4.8. At-keyword-rest state + + + + + 4.4.9. Ident state + + + + + 4.4.10. Ident-rest state + + + + + 4.4.12. Number state + + + + + 4.4.13. Number-rest state + + + + + 4.4.14. Number-fraction state + + + + + 4.4.15. Dimension state + + + + + 4.4.16. SciNotation state + + + + + 4.4.17. URL state + + + + + 4.4.18. URL-double-quoted state + + + + + 4.4.19. URL-single-quoted state + + + + + 4.4.21. URL-unquoted state + + + + + 4.4.20. URL-end state + + + + + 4.4.22. Bad URL state + + + + + 4.4.23. Unicode-range State + + + + + An enumation of all possible tokens. + + + + + A string token (usually in quotation marks). + + + + + A hash token (starts with #). + + + + + A class token (starts with .). + + + + + An identifier token. + + + + + An function token. + + + + + An number token. + + + + + An dimension token. + + + + + The column ( || ) token. + + + + + The descendent ( >> ) token. + + + + + The deep ( >>> ) token. + + + + + The delimiter token to delimiter character. + + + + + The match token (~=, |=, $=, ^=, *=, or !=). + + + + + The RoundBracketClose ( ) ) token. + + + + + The SquareBracketOpen ( [ ) token. + + + + + The SquareBracketClose ( ] ) token. + + + + + The special character colon ( : ). + + + + + The special character comma ( , ). + + + + + The special character whitespace ( ). + + + + + The invalid token (any). + + + + + The end-of-file marker. + + + + + Represents the parser for a selector. + + + + + Takes a string and transforms it into a selector object. + + + + + A priority object for comparing priorities. + + + + + Gets the lowest (zero) priority. + + + + + Gets the priority for having a single tag. + + + + + Gets the priority for having a single class. + + + + + Gets the priority for having a single Id. + + + + + Gets the priority for having an inline element. + + + + + Creates a new priority with the given hashcode. + + The hashcode to use. + + + + Creates a new priority with the given values. + + The number of inlines. + The number of ids. + The number of classes. + The number of tags. + + + + Gets the number of tags for this priority. + + + + + Gets the number of classes for this priority. + + + + + Gets the number of ids for this priority. + + + + + Gets the number of inlines for this priority. + + + + + Adds the two given priorities. + + The first priority. + The second priority. + The result of adding the two priorities. + + + + Compares two priorities and returns a boolean indicating if the two do match. + + The first priority to use. + The second priority to use. + True if both priorities are equal, otherwise false. + + + + Compares two priorities and returns a boolean indicating if the first one is greater. + + The first priority to use. + The second priority to use. + True if the first priority is higher, otherwise false. + + + + Compares two priorities and returns a boolean indicating if the first one is greater or equal. + + The first priority to use. + The second priority to use. + True if the first priority is higher or equal, otherwise false. + + + + Compares two priorities and returns a boolean indicating if the second one is greater. + + The first priority to use. + The second priority to use. + True if the second priority is higher, otherwise false. + + + + Compares two priorities and returns a boolean indicating if the second one is greater or equal. + + The first priority to use. + The second priority to use. + True if the second priority is higher or equal, otherwise false. + + + + Compares two priorities and returns a boolean indicating if the two do not match. + + The first priority to use. + The second color to use. + True if both priorities are not equal, otherwise false. + + + + Checks two priorities for equality. + + The other priority. + True if both priorities or equal, otherwise false. + + + + Tests if another object is equal to this object. + + The object to test with. + True if the two objects are equal, otherwise false. + + + + Returns a hash code that defines the current priority. + + The integer value of the hashcode. + + + + Compares the current priority with another priority. + + The priority to compare to. + A value greater than 1 if the current priority is larger. + + + + Returns a string representing the priority. + + The string representation. + + + + The collection of (known / used) selector pseudo class names. + + + + + The root pseudo class. + + + + + The scope pseudo class. + + + + + The only-of-type pseudo class. + + + + + The first-of-type pseudo class. + + + + + The last-of-type pseudo class. + + + + + The only-child pseudo class. + + + + + The first-child pseudo class. + + + + + The last-child pseudo class. + + + + + The empty pseudo class. + + + + + The any-link pseudo class. + + + + + The link pseudo class. + + + + + The visited pseudo class. + + + + + The active pseudo class. + + + + + The hover pseudo class. + + + + + The focus pseudo class. + + + + + The target pseudo class. + + + + + The enabled pseudo class. + + + + + The disabled pseudo class. + + + + + The checked pseudo class. + + + + + The unchecked pseudo class. + + + + + The indeterminate pseudo class. + + + + + The placeholder-shown pseudo class. + + + + + The default pseudo class. + + + + + The valid pseudo class. + + + + + The invalid pseudo class. + + + + + The required pseudo class. + + + + + The in-range pseudo class. + + + + + The out-of-range pseudo class. + + + + + The optional pseudo class. + + + + + The read-only pseudo class. + + + + + The read-write pseudo class. + + + + + The shadow pseudo class. + + + + + The dir pseudo function. + + + + + The has pseudo function. + + + + + The matches pseudo function. + + + + + The nth-child pseudo function. + + + + + The nth-last-child pseudo function. + + + + + The nth-of-type pseudo function. + + + + + The nth-last-of-type pseudo function. + + + + + The nth-column pseudo function. + + + + + The nth-last-column pseudo function. + + + + + The not pseudo function. + + + + + The lang pseudo function. + + + + + The contains pseudo function. + + + + + The host-context pseudo function. + + + + + The separating colon. + + + + + The collection of (known / used) selector pseudo element names. + + + + + The before pseudo element. + + + + + The after pseudo element. + + + + + The slotted pseudo element. + + + + + The selection pseudo element. + + + + + The first-line pseudo element. + + + + + The first-letter pseudo element. + + + + + The footnote-call pseudo element. + + + + + The footnote-marker pseudo element. + + + + + The content pseudo element. + + + + + The separating double-colon. + + + + + Transport object for evaluating stylesheets. + + + + + Creates new style options for the given document. + + The document to use. + + + + Gets the parent document for hosting the style sheet. + + + + + Gets or sets the element that triggered the evaluation. + + + + + Gets or sets if the stylesheet is disabled. + + + + + Gets or sets if the stylesheet is an alternate. + + + + + Enumeration with possible values for the adjacent position insertation. + + + + + Before the element itself. + + + + + Just inside the element, before its first child. + + + + + Just inside the element, after its last child. + + + + + After the element itself. + + + + + Extensions for the list of attributes. + + + + + Compares another attribute container to the current container. + + The original attribute list. + The list to compare to. + True if both objects are equal, otherwise false. + + + + Clears the given attribute collection. + + The collection to clear. + The collection itself. + + + + The collection of (known / used) attribute names. + + + + + The name attribute. + + + + + The http-equiv attribute. + + + + + The scheme attribute. + + + + + The content attribute. + + + + + The class attribute. + + + + + The style attribute. + + + + + The label attribute. + + + + + The action attribute. + + + + + The prompt attribute. + + + + + The href attribute. + + + + + The hreflang attribute. + + + + + The lang attribute. + + + + + The disabled attribute. + + + + + The selected attribute. + + + + + The value attribute. + + + + + The title attribute. + + + + + The type attribute. + + + + + The rel attribute. + + + + + The rev attribute. + + + + + The accesskey attribute. + + + + + The download attribute. + + + + + The media attribute. + + + + + The target attribute. + + + + + The charset attribute. + + + + + The alt attribute. + + + + + The coords attribute. + + + + + The shape attribute. + + + + + The formaction attribute. + + + + + The formmethod attribute. + + + + + The formtarget attribute. + + + + + The formenctype attribute. + + + + + The formnovalidate attribute. + + + + + The dirname attribute. + + + + + The dir attribute. + + + + + The nonce attribute. + + + + + The noresize attribute. + + + + + The src attribute. + + + + + The srcset attribute. + + + + + The srclang attribute. + + + + + The srcdoc attribute. + + + + + The scrolling attribute. + + + + + The longdesc attribute. + + + + + The frameborder attribute. + + + + + The width attribute. + + + + + The height attribute. + + + + + The marginwidth attribute. + + + + + The marginheight attribute. + + + + + The cols attribute. + + + + + The rows attribute. + + + + + The align attribute. + + + + + The encoding attribute. + + + + + The standalone attribute. + + + + + The version attribute. + + + + + The dropzone attribute. + + + + + The draggable attribute. + + + + + The spellcheck attribute. + + + + + The tabindex attribute. + + + + + The contenteditable attribute. + + + + + The translate attribute. + + + + + The contextmenu attribute. + + + + + The hidden attribute. + + + + + The id attribute. + + + + + The sizes attribute. + + + + + The scoped attribute. + + + + + The reversed attribute. + + + + + The start attribute. + + + + + The ping attribute. + + + + + The ismap attribute. + + + + + The usemap attribute. + + + + + The crossorigin attribute. + + + + + The sandbox attribute. + + + + + The allowfullscreen attribute. + + + + + The allowpaymentrequest attribute. + + + + + The data attribute. + + + + + The typemustmatch attribute. + + + + + The autofocus attribute. + + + + + The accept-charset attribute. + + + + + The enctype attribute. + + + + + The autocomplete attribute. + + + + + The method attribute. + + + + + The novalidate attribute. + + + + + The for attribute. + + + + + The seamless attribute. + + + + + The valign attribute. + + + + + The span attribute. + + + + + The bgcolor attribute. + + + + + The colspan attribute. + + + + + The referrerpolicy attribute. + + + + + The rowspan attribute. + + + + + The nowrap attribute. + + + + + The abbr attribute. + + + + + The scope attribute. + + + + + The headers attribute. + + + + + The axis attribute. + + + + + The border attribute. + + + + + The cellpadding attribute. + + + + + The rules attribute. + + + + + The summary attribute. + + + + + The cellspacing attribute. + + + + + The frame attribute. + + + + + The form attribute. + + + + + The required attribute. + + + + + The multiple attribute. + + + + + The min attribute. + + + + + The max attribute. + + + + + The open attribute. + + + + + The challenge attribute. + + + + + The keytype attribute. + + + + + The size attribute. + + + + + The wrap attribute. + + + + + The maxlength attribute. + + + + + The minlength attribute. + + + + + The placeholder attribute. + + + + + The readonly attribute. + + + + + The accept attribute. + + + + + The pattern attribute. + + + + + The step attribute. + + + + + The list attribute. + + + + + The checked attribute. + + + + + The kind attribute. + + + + + The default attribute. + + + + + The autoplay attribute. + + + + + The preload attribute. + + + + + The loop attribute. + + + + + The controls attribute. + + + + + The muted attribute. + + + + + The mediagroup attribute. + + + + + The poster attribute. + + + + + The color attribute. + + + + + The face attribute. + + + + + The command attribute. + + + + + The icon attribute. + + + + + The radiogroup attribute. + + + + + The cite attribute. + + + + + The async attribute. + + + + + The defer attribute. + + + + + The language attribute. + + + + + The event attribute. + + + + + The alink attribute. + + + + + The background attribute. + + + + + The link attribute. + + + + + The text attribute. + + + + + THe vlink attribute. + + + + + The show attribute. + + + + + The role attribute. + + + + + The actuate attribute. + + + + + The arcrole attribute. + + + + + The space attribute. + + + + + The window attribute. + + + + + The manifest attribute. + + + + + The datetime attribute. + + + + + The low attribute. + + + + + The high attribute. + + + + + The optimum attribute. + + + + + The slot attribute. + + + + + The body attribute. + + + + + The integrity attribute. + + + + + Data transport class to abstract common options in document creation. + + + + + Creates a new set of document options from the given response with + the provided configuration. + + The response to pass on. + The optional default encoding. + The optional import ancestor. + + + + Gets the response to create the document for. + + + + + Gets the provided content-type. + + + + + Gets the text source that came with the response. + + + + + Gets the import ancestor, if any. + + + + + Provides the default content-type to document creation mapping. + + + + + Represents a creator delegate for creating documents. + + The context of the new document. + The creation options. + The cancellation token. + The task of creating the document. + + + + Registers a new creator for the specified content-type. + Throws an exception if another creator for the given + content-type is already added. + + The content-type value. + The creator to invoke. + + + + Unregisters an existing creator for the given content-type. + + The content-type value. + The registered creator, if any. + + + + Creates the default document for the given options. + + The browsing context to use. + The options to consider. + The cancellation token. + The task creating the document from the response. + + + + Creates a new document from the given arguments using the Content-Type + of the provided options. + + The browsing context to use. + The options to consider. + The cancellation token. + The task creating the document from the response. + + + + Loads the response as an HTML document. + + + + + Loads the response as a plain text (formatted as HTML) document. + + + + + An enumeration with all dir modes. + + + + + Text and other elements go from left to right. + + + + + Text and other elements go from right to left + + + + + Useful methods for document objects. + + + + + Iterates over all ranges in the document, applying the provided + action when the given condition is fulfilled. + + The document that hosts the ranges. + + The condition that needs to be fulfilled. + + The action to apply to the range. + + + + Creates an element of the given type or throws an exception, if + there is no such type. + + The type of the element. + The responsible document. + The created element. + + + + Adopts the given node for the provided document context. + + The new owner of the node. + The node to change its owner. + + + + Queues an action in the event loop of the document. + + + The document that hosts the configuration. + + The action that should be invoked. + + + + Queues an action in the event loop of the document, + which can be awaited. + + + The document that hosts the configuration. + + The action that should be invoked. + + + + Queues a function in the event loop of the document, + which can be awaited with the result returned. + + + The document that hosts the configuration. + + The function that should be invoked. + + + + Queues a mutation record for the corresponding observers. + + The document to use. + The record to enqueue. + + + + Adds a transient observer for the given node. + + The document to use. + The node to be removed. + + + + Applies the manifest to the given document. + + The document to modify. + + + + Performs a microtask checkpoint using the mutations host. + Queue a mutation observer compound microtask. + + The document to use. + + + + Provides a stable state by running the synchronous sections of + asynchronously-running algorithms until the asynchronous algorithm + can be resumed (if appropriate). + + The document to use. + + + + Checks if the document is waiting for a script to finish preparing. + + The document to use. + Enumerable of awaitable tasks. + + + + Checks if the document has any active stylesheets that block the + scripts. A style sheet is blocking scripts if the responsible + element was created by that Document's parser, and the element is + either a style element or a link element that was an external + resource link that contributes to the styling processing model when + the element was created by the parser, and the element's style + sheet was enabled when the element was created by the parser, and + the element's style sheet ready flag is not yet set. + http://www.w3.org/html/wg/drafts/html/master/document-metadata.html#has-no-style-sheet-that-is-blocking-scripts + + The document to use. + Enumerable of awaitable tasks. + + + + Spins the event loop until all stylesheets are downloaded (if + required) and all scripts are ready to be parser executed. + http://www.w3.org/html/wg/drafts/html/master/syntax.html#the-end + (bullet 3) + + The document to use. + Awaitable task. + + + + Gets all downloads associated with resources of the document. + + The document hosting the downloads. + The collection of elements hosting resources. + + + + Enumeration of possible document position values. + + + + + It is the same node. + + + + + There is no relation. + + + + + The node preceeds the other element. + + + + + The node follows the other element. + + + + + The node is contains the other element. + + + + + The node is contained in the other element. + + + + + The relation is implementation specific. + + + + + Defines the document readiness. + + + + + The document is still loading. + + + + + The document is interactive, i.e. interaction possible. + + + + + Loading is complete. + + + + + A collection of official DOM error codes. + + + + + The index is not in the allowed range. + + + + + The size of the string is invalid. + + + + + The operation would yield an incorrect node tree. + + + + + The object is in the wrong document. + + + + + Invalid character detected. + + + + + The data is allowed for this object. + + + + + The object can not be modified. + + + + + The object can not be found here. + + + + + The operation is not supported. + + + + + The element is already in-use. + + + + + The object is in an invalid state. + + + + + The string did not match the expected pattern. + + + + + The object can not be modified in this way. + + + + + The operation is not allowed by namespaces in XML. + + + + + The object does not support the operation or argument. + + + + + The validation failed. + + + + + The provided argument type is invalid. + + + + + The operation is insecure. + + + + + A network error occurred. + + + + + The operation was aborted. + + + + + The given URL does not match another URL. + + + + + The quota has been exceeded. + + + + + The operation timed out. + + + + + The supplied node is incorrect or has an incorrect ancestor for this operation. + + + + + The object can not be cloned. + + + + + Defines the callback signature for an event. + + The callback this argument. + The event arguments. + + + + Represents a DOM exception. + + + + + Creates a new DOMException. + + The error code. + + + + Creates a new DOMException with a custom message. + + The message to transport. + + + + Gets the name of the error. + + + + + Gets the error code for this exception. + + + + + Useful methods for element objects. + + + + + Locates the prefix of the given namespace. + + The element that might contain the namespace information. + The url of the namespace. + The prefix or null, if the namespace could not be found. + + + + Locates the namespace of the given prefix. + + The element that might contain the namespace information. + The prefix of the namespace to find. + The url of the namespace or null, if the prefix could not be found. + + + + Gets the non-fixed namespace of the element. + + The element. + The url of the namespace. + + + + Tries to locate a custom namespace URI. + + The element to locate the namespace URI for. + The prefix of the custom namespace. + The located namespace URI. + True if the namespace URI could be located, otherwise false. + + + + Tries to locate the standard namespace URI. + + The element to locate the namespace URI for. + The located namespace URI. + True if the namespace URI could be located, otherwise false. + + + + Creates a new resource request from the provided element for the + given url. + + The element creating a request. + The address that specifies the target. + The new resource request with the information. + + + + Checks if the element with the provided prefix matches the CSS + namespace. + + The element to examine. + The namespace in question. + True if the namespace is matched, else false. + + + + Gets the CSS namespace that is defined via the provided prefix. + + The element that is connected to a doc. + The prefix to lookup. + The namespace url for the prefix. + + + + Checks if the element is currently hovered. + + The element to check. + True if the element is currently hovered, otherwise false. + + + + Checks if the element is the only of its type among the parent's children. + + The element to check. + True if the element is the only of its type among its siblings. + + + + Checks if the element is the first of its type among the parent's children. + + The element to check. + True if the element is the first of its type among its siblings. + + + + Checks if the element is the last of its type among the parent's children. + + The element to check. + True if the element is the last of its type among its siblings. + + + + Checks if the element is currently targeted. + + The element to check. + True if the element's ID is equal to the hash. + + + + Checks if the element is currently enabled. + + The element to check. + True if the element is currently enabled, otherwise false. + + + + Checks if the element is currently disabled. + + The element to check. + True if the element is currently disabled, otherwise false. + + + + Checks if the element is an input element that is currently in its default state. + + The element to check. + True if the element is currently in its default state, otherwise false. + + + + Checks if the element is a pseudo element (before or after). + + The element to check. + The pseudo element's name. + True if the element is a pseudo element, otherwise false. + + + + Checks if the element is currently checked. + + The element to check. + True if the element is currently checked, otherwise false. + + + + Checks if the element is currently in its indeterminate state. + + The element to check. + True if the element is currently indeterminate, otherwise false. + + + + Checks if the element is currently showing a placeholder. + + The element to check. + True if the element is currently showing a placeholder, otherwise false. + + + + Checks if the element is currently unchecked. + + The element to check. + True if the element is currently unchecked, otherwise false. + + + + Checks if the element is currently active. + + The element to check. + True if the element is currently active, otherwise false. + + + + Checks if the element has already been visited. + + The element to check. + True if the element has been visited, otherwise false. + + + + Checks if the element is a link. + + The element to check. + True if the element is a link, otherwise false. + + + + Checks if the element hosts a shadow tree. + + The element to check. + True if the element hosts a shadow tree. + + + + Checks if the element is only optional and not required. + + The element to check. + True if the element is optional, otherwise false. + + + + Checks if the element is required and must be filled out. + + The element to check. + True if the element is required, otherwise false. + + + + Checks if the element does not validate. + + The element to check. + True if the element is invalid, otherwise false. + + + + Checks if the element does validate. + + The element to check. + True if the element is valid, otherwise false. + + + + Checks if the element is readonly. + + The element to check. + True if the element is readonly, otherwise false. + + + + Checks if the element is editable. + + The element to check. + True if the element can be edited, otherwise false. + + + + Checks if the element's value is out-of-range. + + The element to check. + True if the element is invalid, otherwise false. + + + + Checks if the element's value is within the range. + + The element to check. + True if the element is valid, otherwise false. + + + + Checks if the element is its parent's only child. + + The element to check. + True if the element has no siblings, otherwise false. + + + + Checks if the element is its parent's first child. + + The element to check. + True if the element's first child is the given one, otherwise false. + + + + Checks if the element is its parent's last child. + + The element to check. + True if the element's last child is the given one, otherwise false. + + + + Sets the specified attribute name to the specified value for all + elements in the given collection. + + The type of element collection. + The collection. + The name of the attribute. + The value of the attribute. + The collection itself. + + + + Sets the specified attribute name to the specified value for all + elements in the given collection. + + The type of element collection. + The collection. + + An enumeration of attributes in form of key-value pairs. + + The collection itself. + + + + Sets the specified attribute name to the specified value for all + elements in the given collection. + + The type of element collection. + The collection of elements. + + An enumeration of attributes in form of an anonymous object, that + carries key-value pairs. + + The collection itself. + + + + Gets the values of the specified attribute for all elements in the + given collection. + + The type of element collection. + The collection of elements. + The name of the attribute. + The attributes' values. + + + + Clears the attributes of the given element. + + The element to clear. + The element itself. + + + + Clears the attributes of all elements. + + The type of element collection. + The collection to clear. + The collection itself. + + + + Empties the provided element. + + The element to empty. + The element itself. + + + + Empties all provided elements. + + The type of element collection. + The collection. + The collection itself. + + + + Gets the inner HTML of the given element. + + The element. + The source code of the inner HTML. + + + + Sets the inner HTML of the given elements. + + The type of collection. + The collection. + + The source code of the inner HTML to set. + + The collection itself. + + + + Adds the specified class name(s) for all elements in the given + collection. + + The type of element collection. + The collection. + The name(s) of the class(es). + The collection itself. + + + + Removes the specified class name(s) for all elements in the given + collection. + + The type of element collection. + The collection. + The name(s) of the class(es). + The collection itself. + + + + Toggles the specified class name(s) for all elements in the given + collection. + + The type of element collection. + The collection. + The name(s) of the class(es). + The collection itself. + + + + Checks if any element in the given collection has the given + class(es). + + The collection of elements. + The name(s) of the class(es). + + True if any element has the class(es), otherwise false. + + + + + Inserts the nodes generated from the given HTML code before + each element of the provided elements. + + The type of collection. + The elements to iterate through. + The HTML code that generates the nodes. + The unchanged collection. + + + + Inserts the nodes generated from the given HTML code after + each element of the provided elements. + + The type of collection. + The elements to iterate through. + The HTML code that generates the nodes. + The unchanged collection. + + + + Appends the nodes generated from the given HTML code to each + element of the provided elements. + + The type of collection. + The elements to iterate through. + The HTML code that generates the nodes. + The unchanged collection. + + + + Prepends the nodes generated from the given HTML code to each + element of the provided elements. + + The type of collection. + The elements to iterate through. + The HTML code that generates the nodes. + The unchanged collection. + + + + Wraps the given elements in the inner most element of the tree + generated form the provided HTML code. + + The type of collection. + The elements to iterate through. + The HTML code that generates the tree. + The unchanged collection. + + + + Wraps the content of the given elements in the inner most element + of the tree generated form the provided HTML code. + + The type of collection. + The elements to iterate through. + The HTML code that generates the tree. + The unchanged collection. + + + + Wraps all elements in the inner most element of the tree + generated form the provided HTML code. The tree is appended before + the first element of the given list. + + The type of collection. + The elements to wrap. + The HTML code that generates the tree. + The unchanged collection. + + + + Creates a new HTML Collection from the provided elements. + + The base type of the elements. + The elements to include. + The created collection. + + + + Navigates to the hyper reference given by the provided element + without any possibility for cancellation. + + The type of element. + The element of navigation. + The task eventually resulting in the response. + + + + Navigates to the hyper reference given by the provided element. + + The type of element. + The element of navigation. + The token for cancellation. + The task eventually resulting in the response. + + + + Creates a task to use the processor for loading and processing the + resource from the provided url. + + The element to use. + The processor to use. + The url of the resource. + + + + Gets a suitable image candidate for the provided image element. + + The element to use. + The possibly valid URL to the right candidate. + + + + Faster way of getting the (known) attribute. + + The element to host the attribute. + The name of the attribute. + The attribute's value, if any. + + + + Faster way of checking for a (known) attribute. + + The element to host the attribute. + The name of the attribute. + True if the attribute exists, otherwise false. + + + + Easy way of getting the current absolute url from attributes. + + The element to host the attribute. + The name of the attribute. + The attribute's absolute url value. + + + + Checks if the given attribute name corresponds to a boolean attribute. + + + + + Easy way of getting the current boolean value from attributes. + + The element to host the attribute. + The name of the attribute. + The attribute's boolean value. + + + + Easy way of setting the current boolean value of an attribute. + + The element to host the attribute. + The name of the attribute. + The attribute's value. + + + + Faster way of setting the (known) attribute. + + The element to host the attribute. + The name of the attribute. + The attribute's value. + Flag to suppress callbacks. + + + + Creates a unique selector path used to locate the element in the DOM. + + The starting node to create the selector path from. + The unique selector path for this element. + + + + Parses the HTML subtree of the given content in the context of + the provided element. + + The element to use as context. + The HTML source for the subtree. + The root element of the HTML subtree. + + + + The collection of (known / used) event names. + + + + + The invalid event. + + + + + The load event. + + + + + The DOMContentLoaded event. + + + + + The error event. + + + + + The beforescriptexecute event. + + + + + The afterscriptexecute event. + + + + + The readystatechanged event. + + + + + The abort event. + + + + + The blur event. + + + + + The cancel event. + + + + + The click event. + + + + + The change event. + + + + + The canplaythrough event. + + + + + The canplay event. + + + + + The cuechange event. + + + + + The dblclick event. + + + + + The drag event. + + + + + The dragend event. + + + + + The dragenter event. + + + + + The dragexit event. + + + + + The dragleave event. + + + + + The dragover event. + + + + + The dragstart event. + + + + + The drop event. + + + + + The durationchange event. + + + + + The emptied event. + + + + + The focus event. + + + + + The fullscreenchange event. + + + + + The fullscreenerror event. + + + + + The hashchange event. + + + + + The input event. + + + + + The message event. + + + + + The keydown event. + + + + + The keypress event. + + + + + The keyup event. + + + + + The ended event. + + + + + The loadeddata event. + + + + + The loadedmetadata event. + + + + + The loadend event. + + + + + The loadstart event. + + + + + The wheel event. + + + + + The mouseup event. + + + + + The mouseover event. + + + + + The mouseout event. + + + + + The mousemove event. + + + + + The mouseleave event. + + + + + The mouseenter event. + + + + + The mousedown event. + + + + + The pause event. + + + + + The play event. + + + + + The playing event. + + + + + The progress event. + + + + + The ratechange event. + + + + + The waiting event. + + + + + The volumechange event. + + + + + The toggle event. + + + + + The timeupdate event. + + + + + The suspend event. + + + + + The submit event. + + + + + The stalled event. + + + + + The show event. + + + + + The select event. + + + + + The seeking event. + + + + + The seeked event. + + + + + The scroll event. + + + + + The resize event. + + + + + The reset event. + + + + + The afterprint event. + + + + + The print event. + + + + + The beforeprint event. + + + + + The beforeunload event. + + + + + The unloading event. + + + + + The offline event. + + + + + The online event. + + + + + The pagehide event. + + + + + The pageshow event. + + + + + The popstate event. + + + + + The unload event. + + + + + The confirmUnload event. + + + + + The storage event. + + + + + The parsing event. + + + + + The parsed event. + + + + + The requesting event. + + + + + The requested event. + + + + + Represents a custom event that provides an additional details property. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the details for the custom event. + + + + Gets the details that have been associated with the custom event. + + + + + Initializes the custom event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the details for the custom event. + + + + Provides string to Event instance creation mappings. + + + + + Represents a creator delegate for creating a new event. + + The created event. + + + + Creates a new event factory. + + + + + Registers a new creator for the specified event name. + Throws an exception if another creator for the given + event name is already added. + + The name of the event. + The creator to invoke. + + + + Unregisters an existing creator for the given event name. + + The name of the event. + The registered creator, if any. + + + + Creates the default event for the given name. By default + this returns null. + + The name of the event. + The created event. + + + + Creates a new event. + + The name of the event. + The created event. + + + + Represents the error event arguments. + + + + + Gets the message describing the error. + + + + + Gets the filename where the error occurred. + + + + + Gets the line number of the error. + + + + + Gets the column number of the error. + + + + + Gets the exception describing the error. + + + + + Initializes the error event. + + The name of the file containing the error. + The line within the file. + The column within the line,. + The specific error that was thrown. + + + + Represents an event argument. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + + + + Gets the associated flags. + + + + + Gets the type of event. + + + + + Gets the original target of the event. + + + + + Gets the current target (if bubbled). + + + + + Gets the phase of the event. + + + + + Gets if the event is actually bubbling. + + + + + Gets if the event is cancelable. + + + + + Gets if the default behavior has been prevented. + + + + + Gets if the event is trusted. + + + + + Gets the originating timestamp. + + + + + Prevents further propagation of the event. + + + + + Stops the immediate propagation. + + + + + Prevents the default behavior. + + + + + Initializes the event. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + + + + Dispatch the event as described in the specification. + http://www.w3.org/TR/DOM-Level-3-Events/ + + The target of the event. + A boolean if the event has been cancelled. + + + + Represents the different phases of an event. + + + + + Events not currently dispatched are in this phase. + + + + + When an event is dispatched to an object that + participates in a tree it will be in this phase + before it reaches its target attribute value. + + + + + When an event is dispatched it will be in this + phase on its target attribute value. + + + + + When an event is dispatched to an object that + participates in a tree it will be in this phase + after it reaches its target attribute value. + + + + + Represents the arguments for a focus event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + The target that is being focused. + + + + Gets the target of the event. + + + + + Initializes the focus event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + The target that is being focused. + + + + Represents a custom event that provides an additional details property. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + The previous URL. + The current URL. + + + + Gets the URL before the hash changed. + + + + + Gets the URL after the hash changed. + + + + + Initializes the hashchanged event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + The previous URL. + The current URL. + + + + Represents a factory to create event data. + + + + + Creates a new event data object for the given event. + + The name of the event. + The event data for the given event. + + + + Defines a set of event handlers that are implemented by all HTML elements. + + + + + Event triggered after aborting. + + + + + Event triggered after losing focus. + + + + + Event triggered after cancelling. + + + + + Event triggered when the media can be played. + + + + + Event triggered when the media can be fully played. + + + + + Event triggered after the value changed. + + + + + Event triggered after being clicked. + + + + + Event triggered after changing the cue. + + + + + Event triggered after performing a double click. + + + + + Event triggered after starting to be dragged. + + + + + Event triggered after being dragged. + + + + + Event triggered after entering in dragging mode. + + + + + Event triggered after exiting the dragging mode. + + + + + Event triggered after leaving in dragging mode. + + + + + Event triggered after hovering in dragging mode. + + + + + Event triggered after starting to drag. + + + + + Event triggered after dropping. + + + + + Event triggered when the media cursor changed. + + + + + Event triggered after being emptied. + + + + + Event triggered after the media ended. + + + + + Event triggered after an error occurred. + + + + + Event triggered after receiving focus. + + + + + Event triggered after input has happend. + + + + + Event triggered after validation failed. + + + + + Event triggered after key down. + + + + + Event triggered after key press. + + + + + Event triggered after key up. + + + + + Event triggered after the content has been fully loaded. + + + + + Event triggered after the data has been loaded. + + + + + Event triggered after the meta data has been received. + + + + + Event triggered when loading begins. + + + + + Event triggered after mouse down. + + + + + Event triggered after mouse enter. + + + + + Event triggered after mouse leave. + + + + + Event triggered after mouse move. + + + + + Event triggered after mouse out. + + + + + Event triggered after mouse over. + + + + + Event triggered after mouse up. + + + + + Event triggered after mouse wheel. + + + + + Event triggered after the media paused. + + + + + Event triggered after the media started. + + + + + Event triggered before the media started. + + + + + Event triggered after progress. + + + + + Event triggered after the rate changed. + + + + + Event triggered after resetting the form. + + + + + Event triggered after resizing the window. + + + + + Event triggered after scrolling has happened. + + + + + Event triggered after seeking in the media stream. + + + + + Event triggered before seeking in the media stream. + + + + + Event triggered after selected the element. + + + + + Event triggered after being shown. + + + + + Event triggered after being stalled. + + + + + Event triggered after the form has been submitted. + + + + + Event triggered after suspending. + + + + + Event triggered after the time updated. + + + + + Event triggered after being toggled. + + + + + Event triggered after the volume changed. + + + + + Event triggered when waiting for input. + + + + + Represents a message port as defined here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#messageport + + + + + Sends a message over the current message port. + + The message to send. Will be serialized to a string. + + + + Opens the message port. + + + + + Closes the message port. + + + + + Fired when a message has been received. + + + + + Represents a set of event handlers for a Window. + + + + + Event triggered after printing. + + + + + Event triggered before printing. + + + + + Event triggered before closing the document. + + + + + Event triggered when the hash has been changed. + + + + + Event triggered after receiving a message. + + + + + Event triggered after losing connection. + + + + + Event triggered after being connected. + + + + + Event triggered after the page has been hidden. + + + + + Event triggered after showing the page. + + + + + Event triggered after popping the state from the history. + + + + + Event triggered after using the provided storage. + + + + + Event triggered after after closing the document. + + + + + Represents the event arguments when receiving a message. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the data for the message event. + Sets the origin who send the message. + Sets the id of the last event. + Sets the source window of the message. + The message ports to include. + + + + Gets the data that is carried by the message. + + + + + Gets the origin of the message. + + + + + Gets the id of the last event. + + + + + Gets the source of the message. + + + + + Gets the used message ports. + + + + + Initializes the message event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the data for the message event. + Sets the origin who send the message. + Sets the id of the last event. + Sets the source window of the message. + The message ports to include. + + + + Represents a page transition event argument. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Indicates if a webpage is loading from a cache. + + + + Gets if a webpage is loading from a cache.. + + + + + Initializes the event. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Indicates if a webpage is loading from a cache. + + + + The event that is published in case of new request. + + + + + Creates a new event for a request. + + The data of the request. + The received response. + + + + Gets the transmitted request. + + + + + Gets the received response. + + + + + Represents the event args for any UI event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + + + + Gets the associated view. + + + + + Gets the event details. + + + + + Initializes the UI event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + + + + Event target base of all DOM nodes. + + + + + Register an event handler of a specific event type on the Node. + + + A string representing the event type to listen for. + + + The listener parameter indicates the EventListener function to be + added. + + + True indicates that the user wishes to initiate capture. After + initiating capture, all events of the specified type will be + dispatched to the registered listener before being dispatched to + any Node beneath it in the DOM tree. Events which are bubbling + upward through the tree will not trigger a listener designated to + use capture. + + + + + Removes an event listener from the Node. + + + A string representing the event type being removed. + + + The listener parameter indicates the EventListener function to be + removed. + + + Specifies whether the EventListener being removed was registered as + a capturing listener or not. + + + + + Removes all listeners. + + + + + Calls the listener registered for the given event. + + The event that asks for the listeners. + + + + Checks if the given event type has any listeners registered. + + The name of the event. + + True if listeners are registered, otherwise false. + + + + + Dispatch an event to this Node. + + The event to dispatch. + + False if at least one of the event handlers, which handled this + event called preventDefault(). Otherwise true. + + + + + A set of extensions for EventTarget objects. + + + + + Firing a simple event means that a trusted event with a name, which + does not bubble, is not cancelable and which uses the Event + interface. It is created and dispatched at the given target. + + The target of the simple event. + The name of the event to be fired. + Optional parameter to enable bubbling. + Should it be cancelable? + + True if the element was cancelled, otherwise false. + + + + + Fires a trusted event with the provided event data. + + The target of the event. + The event data to dispatch. + + True if the element was cancelled, otherwise false. + + + + + Firing an event means dispatching the initialized (and trusted) + event at the specified event target. + + + The target, where the event has been invoked. + + The used initializer. + + The current event target, if different to the invoked target. + + + True if the element was cancelled, otherwise false. + + + + + Returns a task that is completed once the event is fired. + + The event target type. + The node that fires the event. + The name of the event to be awaited. + The awaitable task returning the event arguments. + + + + An enumeration that contains the valid results of examining a node. + + + + + The Node is accepted. + + + + + The Node (and its children) are rejected. + + + + + The Node is skipped. Children are still considered. + + + + + The enumeration with the flags for setting the NodeIterator. + + + + + All nodes will be considered. + + + + + Elements will be shown. + + + + + Attributes will be shown. + + + + + Text nodes will be shown. + + + + + CData sections will be shown. + + + + + EntityReferences will be shown. + + + + + Entities will be shown. + + + + + ProcessingInstructions will be shown. + + + + + Comments will be shown. + + + + + Documents will be shown. + + + + + DocumentTypes will be shown. + + + + + DocumentFragments will be shown. + + + + + Notations will be shown. + + + + + The list of possible horizontal alignments. + + + + + The inline contents are aligned to the left edge of the line box. + This is the default value for table data. + + + + + The inline contents are centered within the line box. This is + the default value for table headers. + + + + + The inline contents are aligned to the right edge of the line box. + + + + + The text is justified. Text should line up their left and right + edges to the left and right content edges of the paragraph. + + + + + This type represents a DOM element's attribute as an object. + + + + + Gets the local name of the attribute. + + + + + Gets the attribute's name. + + + + + Gets the attribute's value. + + + + + Gets the namespace URL of the attribute. + + + + + Gets the prefix used by the namespace. + + + + + Represents the interface for observing attribute changes. + + + + + Defines the callback signature to react once an attribute changes. + + The element hosting the attribute. + The name of the changed attribute. + The new value of the attribute. + + + + The CharacterData abstract interface represents a Node object that + contains characters. + + + + + Gets or sets the contained text. + + + + + Gets the length of the contained text. + + + + + Returns a string containing the part of Data of the specified + length and starting at the specified offset. + + The point where to start. + The numbers of characters to copy. + + A string that contains a subset of the characters of Data. + + + + + Appends the given value to the Data string. + + The text to append. + + + + Inserts the specified characters, at the specified offset, + in the Data text. + + The offset where to insert the text. + The text to insert. + + + + Removes the specified amount of characters, starting at + the specified offset, from the Data. + + + The offset, where the removal should begin. + + The number of characters to remove. + + + + Replaces the specified amount of characters, starting at the + specified offset, with the specified value. + + + The offset, where the text should be inserted. + + + The amount of characters that should be overwritten. + + The value to insert. + + + + The ChildNode interface contains methods that are particular to Node + objects that can have a parent. + + + + + Inserts nodes just before the current node. + + The nodes to insert. + + + + Inserts nodes just after the current node. + + The nodes to insert. + + + + Replaces the current node with nodes. + + The nodes to insert. + + + + Removes the current node. + + + + + The Comment interface represents textual notations within markup; + although it is generally not visually shown, such comments are + available to be read in the source view. + + + + + The Document interface serves as an entry point to the web page's + content. + + + + + Gets a list of all elements in the document. + + + + + Gets a list of all of the anchors in the document. + + + + + Gets the DOM implementation associated with the current document. + + + + + Gets or sets whether the entire document is editable. + + + + + Gets or sets the value of the dir attribute. + + + + + Gets the URI of the current document. + + + + + Gets the character encoding of the current document. + + + + + Gets a value to indicate whether the document is rendered in Quirks + mode (BackComp) or Strict mode (CSS1Compat). + + + + + Gets a string containing the URL of the current document. + + + + + Gets the Content-Type from the MIME Header of the current document. + + + + + Causes the Document to be replaced in-place, as if it was a new + Document object, but reusing the previous object, which is then + returned. + + The new content type. + + Special annotation to replace the history. + + + + + Finishes writing to a document. + + + + + Writes text to a document. + + + The text to be written on the document. + + + + + Writes a line of text to a document. + + + The text to be written on the document. + + + + + Loads the document content from the given url. + + The url that hosts the content. + + + + Gets the document type. + + + + + Gets the root element of the document. + + + + + Returns a list of elements with a given name in the HTML document. + + + The value of the name attribute of the element. + + A collection of HTML elements. + + + + Returns a set of elements which have all the given class names. + + + A string representing the list of class names to match; class names + are separated by whitespace. + + A collection of elements. + + + + Returns a NodeList of elements with the given tag name. The + complete document is searched, including the root node. + + + A string representing the name of the elements. The special string + "*" represents all elements. + + + A collection of elements in the order they appear in the tree. + + + + + Returns a list of elements with the given tag name belonging to the + given namespace. The complete document is searched, including the + root node. + + + The namespace URI of elements to look for. + + + Either the local name of elements to look for or the special value + "*", which matches all elements. + + + A collection of elements in the order they appear in the tree. + + + + + Creates an event of the type specified. + + + Represents the type of event (e.g., uievent, event, customevent, + ...) to be created. + + The event. + + + + Creates a new Range object. + + The range. + + + + Creates a new comment node, and returns it. + + + A string containing the data to be added to the Comment. + + The new comment. + + + + Creates an empty DocumentFragment object. + + The new document fragment. + + + + Creates a new element with the given tag name. + + + A string that specifies the type of element to be created. + + The created element object. + + + + Creates a new element with the given tag name and namespace URI. + + + Specifies the namespace URI to associate with the element. + + + A string that specifies the type of element to be created. + + The created element. + + + + Creates an Attr of the given name. + + + The name of the attribute. + + + A new Attr object with the nodeName attribute set to name, and + localName, prefix, and namespaceURI set to null. The value of the + attribute is the empty string. + + + + + Creates an attribute of the given qualified name and namespace URI. + + + The namespace URI of the attribute to create. + + + The qualified name of the attribute to instantiate. + + A new Attr object. + + + + Creates a ProcessingInstruction node given the specified name and + data strings. + + + The target part of the processing instruction. + + The data for the node. + The new processing instruction. + + + + Creates a new text node and returns it. + + + A string containing the data to be put in the text node. + + The created text node. + + + + Creates a new NodeIterator object. + + + The root node at which to begin the NodeIterator's traversal. + + + Indicates which nodes to iterate over. + + + An optional callback function for filtering. + + The created node NodeIterator. + + + + Creates a new TreeWalker object. + + + Is the root Node of this TreeWalker traversal. + + + Indicates which nodes to iterate over. + + + An optional callback function for filtering. + + The created node TreeWalker. + + + + Creates a copy of a node from an external document that can be + inserted into the current document. + + + The node from another document to be imported. + + + Optional argument, indicating whether the descendants of the + imported node need to be imported. + + + The new node that is imported into the document. The new node's + parentNode is null, since it has not yet been inserted into the + document tree. + + + + + Adopts a node from an external document. The node and its subtree + is removed from the document it's in (if any), and its + ownerDocument is changed to the current document. The node can then + be inserted into the current document. The new node's parentNode is + null, since it has not yet been inserted into the document tree. + + + The node from another document to be adopted. + + + The adopted node that can be used in the current document. + + + + + Gets the date of the last modification. + + + + + Gets the current ready state of the document. + + + + + Gets the current location of the document. + + + + + Gets the forms in the document. + + + + + Gets the images in the document. + + + + + Gets the scripts in the document. + + + + + Gets a list of the embed elements within the current document. + + + + + Gets a list of the commands (menu item, button, and link elements) + within the current document. + + + + + Gets a collection of all area and anchor elements in a document + with a value for the href attribute. + + + + + Gets or sets the title of the document. + + + + + Gets or sets the head element. + + + + + Gets the body element. + + + + + Gets or sets the document cookie. + + + + + Gets the Unicode serialization of document's origin. + + + + + Gets or sets the domain portion of the origin of the current + document. + + + + + Gets the referer to that pointed to the current document. + + + + + Event triggered after the ready state changed. + + + + + Gets the currently focused element, that is, the element that will + get keystroke events if the user types any. + + + + + Gets the script element which is currently being processed. + + + + + Gets the window object associated with the document or null if none + available. + + + + + Checks if the document is currently focused. + + True if the document is active and in the focus. + + + + Executes a command with the provided id and the optional arguments. + + The id of the command to issue. + Shall the UI be shown? + + The argument value of the command, if any. + + + True if the command has been successfully executed, otherwise + false. + + + + + Checks if the command with the provided id is enabled. + + The id of the command to check. + + True if the command exists and is enabled, otherwise false. + + + + + Checks if the command with the provided id is currently in an + indeterminate state. + + The id of the command to check. + + True if the command exists and is neither enabled nor disabled, + otherwise false. + + + + + Checks if the command with the provided id has already been + executed for the current value. + + The id of the command to check. + + True if the command has been executed, otherwise false. + + + + + Checks if a command with the provided id exists and is supported + in the current context. + + The id of the command to check. + True if the command exists, otherwise false. + + + + Gets the value of the document, range, or current selection, for + the provided command. + + The id of the command to issue. + The modified value. + + + + Gets the browsing context to use. + + + + + Gets the import ancestor, if any. + + + + + Gets the underlying source. + + + + + Gets the status code of the server's response, if any. + + + + + Gets the associated entity provider. + + + + + Represents the factory for creating documents from responses. + + + + + Creates a new attribute selector from the given arguments. + + The browsing context to use. + The options to consider. + The cancellation token. + The task creating the document from the response. + + + + The DocumentFragment interface represents a minimal document object + that has no parent. + + + + + Extends the document with further properties for styling. + + + + + Gets a list of stylesheet objects for stylesheets explicitly linked + into or embedded in a document. + + + + + Gets or sets the selected set of stylesheets. + + + + + Gets the last stylesheet set. + + + + + Gets the preferred stylesheet set. + + + + + Gets a live list of all of the currently-available style sheet + sets. + + + + + Enables the stylesheets matching the specified name in the current + style sheet set, and disables all other style sheets (except those + without a title, which are always enabled). + + The name of the sheets to enable. + + + + The DocumentType interface represents a Node containing a doctype. + + + + + Gets or sets the name of the document type. + + + + + Gets or sets the public ID of the document type. + + + + + Gets or sets the system ID of the document type. + + + + + Defines how a DOMException should look like. + + + + + Gets the error code for this exception. + + + + + The Element interface represents an object within a DOM document. + + + + + Gets the namespace prefix of this element. + + + + + Gets the local part of the qualified name of this element. + + + + + Gets the namespace URI of this element. + + + + + Gets the sequence of associated attributes. + + + + + Gets the list of class names. + + + + + Gets or sets the value of the class attribute. + + + + + Gets or sets the id value of the element. + + + + + Inserts new HTML elements specified by the given HTML string at + a position relative to the current element specified by the + position. + + The relation to the current element. + The HTML code to generate elements for. + + + + Returns a boolean value indicating whether the specified element + has the specified attribute or not. + + The attributes name. + The return value of true or false. + + + + Returns a boolean value indicating whether the specified element + has the specified attribute or not. + + + A string specifying the namespace of the attribute. + + The attributes name. + The return value of true or false. + + + + Returns the value of the named attribute on the specified element. + + + The name of the attribute whose value you want to get. + + + If the named attribute does not exist, the value returned will be + null, otherwise the attribute's value. + + + + + Returns the value of the named attribute on the specified element. + + + A string specifying the namespace of the attribute. + + + The name of the attribute whose value you want to get. + + + If the named attribute does not exist, the value returned will be + null, otherwise the attribute's value. + + + + + Adds a new attribute or changes the value of an existing attribute + on the specified element. + + The name of the attribute as a string. + The desired new value of the attribute. + The current element. + + + + Adds a new attribute or changes the value of an existing attribute + on the specified element. + + + A string specifying the namespace of the attribute. + + The name of the attribute as a string. + The desired new value of the attribute. + + + + Removes an attribute from the specified element. + + + Is a string that names the attribute to be removed. + + True if an attribute was removed, otherwise false. + + + + Removes an attribute from the specified element. + + + A string specifying the namespace of the attribute. + + + Is a string that names the attribute to be removed. + + True if an attribute was removed, otherwise false. + + + + Returns a set of elements which have all the given class names. + + + A string representing the list of class names to match; class names + are separated by whitespace. + + A collection of elements. + + + + Returns a NodeList of elements with the given tag name. The + complete document is searched, including the root node. + + + A string representing the name of the elements. The special string + "*" represents all elements. + + + A collection of elements in the order they appear in the tree. + + + + + Returns a list of elements with the given tag name belonging to the + given namespace. The complete document is searched, including the + root node. + + + The namespace URI of elements to look for. + + + Either the local name of elements to look for or the special value + "*", which matches all elements. + + + A collection of elements in the order they appear in the tree. + + + + + Checks if the element is matched by the given selector. + + Represents the selector to test. + + True if the element would be selected by the specified selector, + otherwise false. + + + + + Returns the closest ancestor of the current element (or the current element itself) which matches the selectors given in the parameter. + + Represents the selector to test. + + The closest ancestor of the current element (or the current element itself) which matches the selectors given. If there isn't such an ancestor, it returns null. + + + + + Gets or sets the inner HTML (excluding the current element) of the + element. + + + + + Gets or sets the outer HTML (including the current element) of the + element. + + + + + Gets the name of the tag that represents the current element. + + + + + Creates a new shadow root for the current element, if there is none + already. + + The mode of the shadow root. + The new shadow root. + + + + Gets the assigned slot of the current element, if any. + + + + + Gets the value of the slot attribute. + + + + + Gets the shadow root of the current element, if any. + + + + + Gets if the element is currently focused. + + + + + Gets the source reference if available. + + + + + Represents an element factory. + + The type of root document. + The common type of elements to create. + + + + Creates a new element with the given local name and optional prefix. + + The owner of the element. + The local name of the element. + The optional prefix of the element. + The optional flags for the node. + The created document's child element. + + + + Defines methods to create a custom entity service. + + + + + Gets a symbol specified by its entity name usually trailed with + the semicolon, if available. + + The name of the entity in the markup. + The string with the symbol or null. + + + + EventTarget is a DOM interface implemented by objects that can receive + DOM events and have listeners for them. + + + + + Register an event handler of a specific event type on the + EventTarget. + + + A string representing the event type to listen for. + + + The listener parameter indicates the EventListener function to be + added. + + + True indicates that the user wishes to initiate capture. After + initiating capture, all events of the specified type will be + dispatched to the registered listener before being dispatched to + any EventTarget beneath it in the DOM tree. Events which are + bubbling upward through the tree will not trigger a listener + designated to use capture. + + + + + Removes an event listener from the EventTarget. + + + A string representing the event type being removed. + + + The listener parameter indicates the EventListener function to be + removed. + + + Specifies whether the EventListener being removed was registered as + a capturing listener or not. + + + + + Calls the listener registered for the given event. + + The event that asks for the listeners. + + + + Dispatch an event to this EventTarget. + + The event to dispatch. + + False if at least one of the event handlers, which handled this + event called preventDefault(). Otherwise true. + + + + + An HTMLAllCollection is always rooted at document and matching all + elements. It represents the tree of elements in a one-dimensional + fashion. + + + + + HTMLCollection is an interface representing a generic collection + (array) of elements (in document order) and offers methods and + properties for selecting from the list. + + + + + Gets the number of items in the collection. + + + + + Gets the specific node at the given zero-based index into the list. + + The zero-based index. + Returns the element at the specified index. + + + + Gets the specific node whose ID or, as a fallback, name matches the + string specified by name. Matching by name is only done as a last + resort, only in HTML, and only if the referenced element supports + the name attribute. + + The id or name to match. + Returns the element with the specified name. + + + + The DOMImplementation interface represent an object providing methods + which are not dependent on any particular document. + + + + + Creates and returns an HTML Document. + + + The title to give the new HTML document. + + A new document. + + + + Creates and returns a DocumentType. + + + The qualified name, like svg:svg. + + + The PUBLIC identifier. + + + The SYSTEM identifiers. + + A document type with the specified attributes. + + + + Returns a Boolean indicating if a given feature is supported or + not. This function is unreliable and kept for compatibility purpose + alone: except for SVG-related queries, it always returns true. + + The feature name. + + The version of the specification defining the feature. + + + + + + Implemented by elements that may expose imports. + + + + + Gets the Document object associated with the given element, or null + if there is none. + + + + + Implemented by elements that may expose stylesheets. + + + + + Gets the StyleSheet object associated with the given element, or + null if there is none. + + + + + The Location interface represents the location of the object it is + linked to. Changes done on it are reflected on the object it relates + to. + + + + + Loads the resource at the URL provided in parameter. + + The path to the resource. + + + + Replaces the current resource with the one at the provided URL. The + difference from the assign() method is that after using replace() + the current page will not be saved in session History, meaning the + user won't be able to use the back button to navigate to it. + + + The path to the resource that should replace the current resource. + + + + + Reloads the resource from the current URL. + + + + + MutationRecord defines an interface that will be passed to the + observer's callback. + + + + + Gets attributes if the mutation was an attribute mutation, + characterData if it was a mutation to a CharacterData node, and + childList if it was a mutation to the tree of nodes. + + + + + Gets the node the mutation affected, depending on the type. For + attributes, it is the Element whose attribute changed. For + CharacterData, it is the CharacterData node. For ChildList, it is + the node whose children changed. + + + + + Gets the nodes added, or null. + + + + + Gets the nodes removed, or null. + + + + + Gets the previous sibling of the added or removed nodes, or null. + + + + + Gets the next sibling of the added or removed nodes, or null. + + + + + Gets the local name of the changed attribute, or null. + + + + + Gets the namespace of the changed attribute, or null. + + + + + Gets a string depending on the type. For attributes, it is the + value of the changed attribute before the change. For + characterData, it is the data of the changed node before the + change. For childList, it is null. + + + + + NamedNodeNap is a key/value pair of nodes that can be accessed by + numeric or string index. + https://dom.spec.whatwg.org/#interface-namednodemap + + + + + Gets the node at the specified numeric index. + + The index of the element. + The attribute at the specified numeric index. + + + + Gets the node with the specified name. + + The name of the element. + The attribute at the specfied name. + + + + Gets the number of nodes in the NamedNodeMap. + + The number of nodes in the collection. + + + + Gets a named item in the NamedNodeMap. + + The name of the item to get. + The attribute with the given name. + + + + Sets a named item in the NamedNodeMap. + + The named item to set. + The replaced attribute, if any. + + + + Removes a named item from the NamedNodeMap + + The named item to remove. + The removed attribute. + + + + Gets a named item in the NamedNodeMap identified by namespace and + local name. + + The namespace of the item. + The local name of the item. + The attribute with the namespaceUri and name. + + + + Sets a named item in the NamedNodeMap. + + The named item to set. + The replaced attribute, if any. + + + + Removes a named item from the NamedNodeMap. + + The namespace of the item. + The local name of the item. + The removed attribute. + + + + A Node is an interface from which a number of DOM types inherit, and + allows these various types to be treated similarly. + + + + + Gets a string representing the base URL. + + + + + Gets the base url. + + + + + Gets a string containing the name of the Node. The structure of the + name will differ with the name type. + + + + + Gets a live NodeList containing all the children of this node. + Being live means that if the children of the node change, the + NodeList object is automatically updated. + + + + + Clones the node, and optionally, all of its contents. + By default, it clones the content of the node. + + + Optionally: Sets if all of the content should be cloned as well. + + The cloned node. + + + + Determines if two nodes are equal. + + + The node to be compared to the node that is executing the method. + + + True if the node specified in the otherNode parameter is equal to + the current node. + + + + + Compares the position of two nodes in a document. + + + The node to be compared to the reference node, which is the node + executing the method. + + The relation between the two nodes. + + + + Cleans up all the text nodes under this element, i.e. merges + adjacent and removes empty text nodes. + + + + + Gets the Document that this node belongs to. If no document is + associated with it, returns null. + + + + + Gets an Element that is the parent of this node. If the node has no + parent, or if that parent is not an Element, this property returns + null. + + + + + Gets a node that is the parent of this node. If there is no such + node, like if this node is the top of the tree or if doesn't + participate in a tree, this property returns null. + + + + + Returns true if other is an inclusive descendant of the context + object, and false otherwise (including when other is null). + + The Node to check the childs for. + + True if the given node is contained within this Node, otherwise + false. + + + + + Gets a Node representing the first direct child node of the node, + or null if the node has no child. + + + + + Gets a node representing the last direct child node of the node, + or null if the node has no child. + + + + + Gets a Node representing the next node in the tree, or null if + there isn't such node. + + + + + Gets a Node representing the previous node in the tree, or null if + there isn't such node. + + + + + Indicates whether or not a namespace is the default namespace for a + document. + + + The namespace to be compared to the default namespace. + + + True if the given namespace URI is the default for the current + document. + + + + + Gets the Uniform Resource Identifier (URI) of the namespace + associated with a namespace prefix, if any. + + The namespace prefix. + The URI of the namespace. + + + + Gets the namespace prefix associated with a Uniform + Resource Identifier (URI), if any. + + The URI. + The namespace prefix associated with the URI. + + + + Gets an unsigned short representing the type of the node. + + + + + Gets or sets a string representing the value of an object. For most + node types, this returns null and any set operation is ignored. + + + + + Gets or sets the textual content of an element and all its + descendants. + + + + + Gets an indicator if the element has any child nodes, or not. + + + + + Inserts a node as the last child node of this element. + + The node to be appended. + The appended Node. + + + + Inserts the newElement immediately before the referenceElement. + + The node to be inserted. + + The existing child element that will succeed the new element. + + The inserted node. + + + + Removes a child node from the current element, which must be a + child of the current node. + + The child to be removed. + The removed node. + + + + Replaces one child node of the current one with the second one + given in the parameters. + + The child to be inserted. + The child to be removed. + The old node, if any. + + + + Gets the associated node flags. + + + + + The NodeIterator interface represents an iterator over the members of a + list of the nodes in a subtree of the DOM. The nodes will be returned + in document order. + + + + + Gets a Node representing the root node as specified when the + NodeIterator was created. + + + + + Gets the Node to which the iterator is anchored. + + + + + Gets an indicator whether the NodeFilter is anchored before the + reference node. + + + + + Gets a description of the types of nodes that must to be presented. + Non-matching nodes are skipped, but their children may be included, + if relevant. + + + + + Gets the NodeFilter used to select the relevant nodes. + + + + + Returns the next Node in the document, or null if there are none. + + The next Node, if any. + + + + Returns the previous Node in the document, or null if there are + none. + + The previous Node, if any. + + + + NodeList objects are collections of nodes. + + + + + Returns an item in the list by its index, or throws an exception. + + The 0-based index. + The element at the given index. + + + + Gets the number of nodes in the NodeList. + + + + + Extensions to ChildNode nodes that are not document type nodes. + + + + + Gets the Element immediately following this ChildNode in its + parent's children list, or null if there is no Element in the list + following this ChildNode. + + + + + Gets the Element immediately prior to this ChildNode in its + parent's children list, or null if there is no Element in the list + prior to this ChildNode. + + + + + Extensions to ParentNode nodes that are not Element nodes. + + + + + Returns the Element whose ID is given by elementId. If no such + element exists, returns null. The behavior is not defined if + more than one element have this ID. + + + A case-sensitive string representing the unique ID of the element + being sought. + + The matching element. + + + + + + + Represents a generic node attribute. + + + + + Creates a new attribute with the given local name. + + The local name of the attribute. + + + + Creates a new attribute with the given local name and value. + + The local name of the attribute. + The value of the attribute. + + + + Creates a new attribute with the given properties. + + The prefix of the attribute. + The local name of the attribute. + The value of the attribute. + The namespace of the attribute. + + + + Gets the attribute's prefix. + + + + + Gets if the attribute is an id attribute. + + + + + Gets if the value is given or not. + + + + + Gets the attribute's fully qualified name. + + + + + Gets the attribute's value. + + + + + Gets the attribute's local name. + + + + + Gets the attribute's namespace. + + + + + Checks if the attribute equals another attribute. + + The other attribute. + True if both are equivalent, otherwise false. + + + + Computes the hash code of the attribute. + + The computed hash code. + + + + The base class for all characterdata implementations. + + + + + A bunch of methods for getting DOM elements on some internal collections. + + + + + Gets the descendents from the provided parent that fulfill the + specified predicate, if any. + + The type of elements to obtain. + The parent of the descendents. + + True if all descendents, false if only direct descendents should be + considered. + + The filter function, if any. + The collection with the corresponding elements. + + + + Gets an element by its ID. + + The nodelist to investigate. + The id to find. + The element or null. + + + + Gets a list of HTML elements given by their name attribute. + + The list to investigate. + The name attribute's value. + The result collection. + + + + Determines if the current filter settings includes the provided + node. + + The filter settings to use. + The node to check against. + True if the node is accepted, otherwise false. + + + + Gets the element with the provided id, if any. Otherwise the + element with the same name is searched. + + The type of node to obtain. + The list of elements to filter. + The id of the element to find. + The element with the given id, or null. + + + + Represents a node that contains a comment. + + + + + An enumeration with all contenteditable modes. + + + + + Not contenteditable. + + + + + The element is contenteditable. + + + + + Inherited from the parent element. + + + + + Represents the default attribute observer. + + + + + Creates a new instance. + + + + + Registers the standard attribute observers, e.g., for class, style, ... attributes. + + + + + Registers a new attribute observer. + + The associated element type. + The name of the attribute. + The callback to invoke when the condition is met. + + + + Represents a document node. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clears the whole document without any notification. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the document up with the given parameters. + + The received response. + The content-type. + The ancestor, if any. + + + + Creates a new element in the current namespace from the infos. + + The name of the new element. + The optional prefix to use. + The optional flags, if any. + The created element. + + + + Waits for the given task before raising the load event. + + The task to wait for. + + + + Gets the specified attached references. + + The type of values to get. + Gets the enumeration over all values. + + + + Attaches another reference to this document. + + The value to attach. + + + + Sets the focus to the provided element. + + The element to focus on. + + + + Finishes writing to a document. + + + + + Potentially prompts the user to unload the document. + + True if unload okay, otherwise false. + + + + Unloads the document. For more details, see: + http://www.w3.org/html/wg/drafts/html/CR/browsers.html#unload-a-document + + The recycle parameter. + + + + + + + + + + + + + + + + + + + Represents a document fragment. + + + + + Represents the document type node. + + + + + Creates a new document type node. + + + + + Gets the element immediately preceding in this node's parent's list + of nodes, null if the current element is the first element in that + list. + + + + + Gets the element immediately following in this node's parent's list + of nodes, or null if the current element is the last element in + that list. + + + + + Gets a list of defined entities. + + + + + Gets a list of defined notations. + + + + + Gets or sets the name of the document type. + + + + + Gets or sets the public ID of the document type. + + + + + Gets or sets the system ID of the document type. + + + + + Gets or sets the internal subset of the document type. + + + + + Inserts nodes before the current node. + + The nodes to insert before. + The current element. + + + + Inserts nodes after the current node. + + The nodes to insert after. + The current element. + + + + Replaces the current node with the nodes. + + The nodes to replace. + + + + Removes the current element from the parent. + + + + + + + + Provides a number of methods for performing operations that are + independent of any particular instance of the DOM. + + + + + Represents an element node. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Takes a given string source and parses it into a subtree + using the current element as context. + Follows the fragment parsing strategy for the given namespace. + + The source to parse into a subtree. + The documentElement of the new subtree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds an attribute. + + The attribute to add. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an entity node. + + + + + Creates a new entity node. + + + + + Creates a new entity node. + + + + + Gets the public identiifer. + + + + + Gets the system identifier. + + + + + Gets or sets the notation name. + + + + + Gets the used input encoding. + + + + + Gets the used XML encoding. + + + + + Gets the used XML version. + + + + + Gets or sets the entity's value. + + + + + Gets or sets the value of the entity. + + + + + Returns a duplicate of the node on which this method was called. + + + + + Represents a reference to an entity. + + + + + Creates a new entity node. + + + + + Creates a new entity node. + + The initial owner. + Name of the entity reference. + + + + A general collection for all elements of type IElement. + + + + + A specialized collection containing elements of type T. + + The type of elements that is contained. + + + + A specialized collection containing elements of type HTMLFormControlElement. + + + + + A location object with information about a Url. + + + + + Couples the mutation events to mutation observers and the event loop. + + + + + Represents a recording of DOM changes. + + + + + NamedNodeNap is a key/value pair of nodes that can be accessed by + numeric or string index. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a node in the generated tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clones the current node using the new owner. + + The new document owner, if any. + True if a deep clone is wanted, otherwise false. + The cloned node. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + For more information, see: + https://dom.spec.whatwg.org/#validate-and-extract + + + + + + + + + + + + + + Run any adopting steps defined for node in other applicable + specifications and pass node and oldDocument as parameters. + + + + + Specifications may define insertion steps for all or some nodes. + + + + + Specifications may define removing steps for all or some nodes. + + + + + + + + + + + Defines some properties of a node. + Exclusive maximum is 0x100000000. + Inclusive maximum is 0x0FFFFFFFF. + General range: 0x1 to 0x80 + HTML range : 0x100 to 0x8000 + MathML range : 0x10000 to 0x800000 + SVG range : 0x1000000 to 0x80000000 + + + + + No special properties. + + + + + The element is self-closing. + + + + + The element is special. + + + + + The element has literal text. + + + + + The element may start with an additional free line. + + + + + The element is implicitely closed. + + + + + The end of the element is implied. + + + + + The element is opening a scope. + + + + + The element is part of the HTML namespace. + + + + + The element is an HTML text integration point. + + + + + The element is an HTML formatting element. + + + + + The element is opening a list scope. + + + + + The element is opening a select scope. + + + + + The element is opening a table section scope. + + + + + The element is opening a table scope. + + + + + The element is part of the MathML namespace. + + + + + The element is an MathML text integration point. + + + + + The element is part of the SVG namespace. + + + + + The element is an SVG text integration point. + + + + + The iterator through a collection of DOM nodes. + + + + + Represents a list of Node instances or nodes. + + + + + Gets an empty node-list. Shouldn't be modified. + + + + + Represents a notation node. + + + + + Creates a new notation node. + + + + + Gets or sets the value of the public identifier. + + + + + Gets or sets the value of the system identifier. + + + + + Returns a duplicate of the node on which this method was called. + + The duplicate node. + + + + A collection specialized on IHtmlOptionElement elements. + + + + + Represents a processing instruction node. + + + + + Creates a processing instruction by splitting data into the name/target and data. + + + + + A list of possible quirks mode states. + + + + + The quirks mode is deactivated. + + + + + The quirks mode is partly activated. + + + + + The quirks mode is activated. + + + + + A DOM range to gather DOM tree information. + + + + + A list of tokens that can be modified. + + + + + Represents a shadow root. + + + + + Contains simple choices. + + + + + Yes. + + + + + No. + + + + + Represents a string list. + + + + + Represents a list of DOMTokens. + + + + + A collection of CSS elements. + + + + + Creates a new stylesheet class. + + The list to enumerate. + + + + Gets the stylesheet at the specified index. + If index is greater than or equal to the number + of style sheets in the list, this returns null. + + The index of the element. + The stylesheet. + + + + Gets the number of elements in the list of stylesheets. + + + + + Returns an enumerator that iterates through the stylesheets. + + The enumerator. + + + + Returns an enumerator that iterates through the collection. + + The enumerator. + + + + Represents a text node. + + + + + A simple list of tokens that is immutable. + + + + + The treewalker for walking through the DOM tree. + + + + + Represents a sample browsing Window implementation for automated tests, + analysis and as a useful playground. + + + + + Gets the proxy to the current browsing context. + + + + + Gets the user-agent information. + + + + + Gets a reference to the document that the window contains. + + + + + Gets or sets the name of the window. + + + + + Gets or sets the height of the outside of the browser window. + + + + + Gets or sets the width of the outside of the browser window. + + + + + Gets or sets the horizontal distance of the left border of the + user's browser from the left side of the screen. + + + + + Gets or sets the vertical distance of the top border of the user's + browser from the top side of the screen. + + + + + Gets the location of the currently contained document. + + + + + Gets or sets the status string. + + + + + Gets if the window is currently open or already closed. + + + + + Defines the ParentNode interface that is implemented by possible + parents. + + + + + Gets the child elements. + + + + + Gets the first child element of this element. + + + + + Gets the last child element of this element. + + + + + Gets the number of child elements. + + + + + Appends nodes to current document. + + The nodes to append. + + + + Prepends nodes to the current document. + + The nodes to prepend. + + + + Returns the first element within the document (using depth-first + pre-order traversal of the document's nodes) that matches the + specified group of selectors. + + The group of selectors to use. + The found element. + + + + Returns a list of the elements within the document (using + depth-first pre-order traversal of the document's nodes) that match + the specified group of selectors. + + The group of selectors to use. + A non-live NodeList of element objects. + + + + A processing instruction provides an opportunity for + application-specific instructions to be embedded within XML and which + can be ignored by XML processors which do not support processing their + instructions (outside of their having a place in the DOM). + + + + + Gets the target of the processing instruction. + + + + + The PseudoElement interface is used for representing CSS + pseudo-elements. + + + + + Gets the assigned pseudo name (e.g., before). + + + + + The Range interface represents a fragment of a document that can + contain nodes and parts of text nodes in a given document. + + + + + Gets the node that starts the container. + + + + + Gets the offset of the StartContainer in the document. + + + + + Gets the node that ends the container. + + + + + Gets the offset of the EndContainer in the document. + + + + + Gets a value that indicates if the representation is collapsed. + + + + + Gets the common ancestor node of the contained range. + + + + + Selects the start of the given range by using the given reference + node and a relative offset. + + The reference node to use. + + The offset relative to the reference node. + + + + + Selects the end of the given range by using the given reference + node and a relative offset. + + The reference node to use. + + The offset relative to the reference node. + + + + + Selects the start of the given range by using an inclusive + reference node. + + The reference node to use. + + + + Selects the end of the given range by using an inclusive reference + node. + + The reference node to use. + + + + Selects the start of the given range by using an exclusive + reference node. + + The reference node to use. + + + + Selects the end of the given range by using an exclusive reference + node. + + The referenced node. + + + + Collapses the range to a single level. + + + Determines if only the first level should be selected. + + + + + Selects the contained node. + + The node to use. + + + + Selects the contained nodes by taking a reference node as origin. + + The reference node. + + + + Clears the contained nodes. + + + + + Clears the node representation and returns a document fragment with + the originally contained nodes. + + The document fragment containing the nodes. + + + + Creates a document fragement of the contained nodes. + + The created document fragment. + + + + Inserts a node into the range. + + The node to include. + + + + Includes the given node with its siblings in the range. + + The range to surround. + + + + Creates a copy of this range. + + The copy representing the same range. + + + + Detaches the range from the DOM tree. + + + + + Checks if the given node is within this range by using a offset. + + The node to check for. + The offset to use. + + True if the point is within the range, otherwise false. + + + + + Compares the boundary points of the range. + + + Determines how these points should be compared. + + + The range of the other boundary points. + + A relative position. + + + + Compares the node to the given offset and returns the relative + position. + + The node to use. + The offset to use. + The relative position in the range. + + + + Checks if the given node is contained in this range. + + The node to check for. + + True if the node is within the range, otherwise false. + + + + + The same as TokenList, except that it allows the underlying string to + be directly changed. + + + + + Gets or sets the underlying string. + + + + + The ShadowRoot interface represents the shadow root. + + + + + Gets the currently focused element in the shadow tree, if any. + + + + + Gets the host element, which contains this shadow root. + + + + + Gets the markup of the current shadow root's contents. + + + + + Gets the shadow root style sheets. + + + + + Represents a reference from an element to its original source code. + + + + + Gets the position in the original source code. + + + + + Represents a string list. + + + + + Gets the value at the specified index. + + The index of the value. + The string value at the given index. + + + + Gets the number of entries. + + + + + Returns a boolean indicating if the specified entry is available. + + The entry that will be looked for. + + True if the element is available, otherwise false. + + + + + The DOMStringMap interface represents a set of name-value pairs. + + + + + Gets or sets an item in the dictionary. + + The name of the item to get or set. + The item with the associated name. + + + + Deletes the string with the given name from the map. + + The name of the string to remove. + + + + Represent a stylesheet for collecting style information. + + + + + Gets the style sheet language for this style sheet. + + + + + Gets the value of the attribute, which is its location. For inline + style sheets, the value of this attribute is null. + + + + + Gets the element that associates this style sheet with the + document. + + + + + Gets the advisory title. The title is often specified in the + ownerNode. + + + + + Gets the indented destination media for style information. The + media is often specified in the ownerNode. If no media has been + specified, the MediaList is empty. + + + + + Gets or sets if the stylesheet is applied to the document. + Modifying this attribute may cause a new resolution of style for + the document. If the media doesn't apply to the current user agent, + the disabled attribute is ignored. + + + + + Gets the browsing context to use. + + + + + Gets the underlying source. + + + + + Sets the owner of the sheet. + + The owning element. + + + + Tries to find the matching namespace url for the given prefix. + + The prefix of the namespace to find. + The namespace assigned to the prefix, if any. + + + + Represents a list of stylesheet elements. + + + + + Gets the stylesheet at the specified index. If index is greater + than or equal to the number of style sheets in the list, this + returns null. + + The index of the element. + The stylesheet. + + + + Gets the number of elements in the list of stylesheets. + + + + + The Text interface represents the textual content of Element or Attr. + If an element has no markup within its content, it has a single child + implementing Text that contains the element's text. However, if the + element contains markup, it is parsed into information items and Text + nodes that form its children. + + + + + Breaks the node into two nodes at a specified offset. + + + The point where the Node should be split. + + + The freshly created Text element with the rest of the content. + + + + + Gets a string containing the text of all Text nodes logically + adjacent to this Node, concatenated in document order. + + + + + Gets the assigned slot of the current text, if any. + + + + + This type represents a set of space-separated tokens. + + + + + Gets the number of contained tokens. + + + + + Gets an item in the list by its index. + + The index of the item. + The item at the specified index. + + + + Returns true if the underlying string contains a token, otherwise + false. + + The token to search for. + The result of the search. + + + + Adds some tokens to the underlying string. + + A list of tokens to add. + + + + Remove some tokens from the underlying string. + + A list of tokens to remove. + + + + Removes the specified token from string and returns false. + If token doesn't exist it's added and the function returns true. + + The token to toggle. + + + True if the token has been added, otherwise false. + + + + + The TreeWalker object represents the nodes of a document subtree and a + position within them. + + + + + Gets a Node representing the root node as specified when the + TreeWalker was created. + + + + + Gets or sets the Node on which the TreeWalker is currently pointing + at. + + + + + Gets a description of the types of nodes that must to be presented. + Non-matching nodes are skipped, but their children may be included, + if relevant. + + + + + Gets the NodeFilter used to select the relevant nodes. + + + + + Moves the current Node to the next visible node in the document + order, and returns the found node. It also moves the current node + to this one. If no such node exists, returns null and the current + node is not changed. + + The next Node, if any. + + + + Moves the current Node to the previous visible node in the document + order, and returns the found node. It also moves the current node + to this one. If no such node exists,or if it is before that the + root node defined at the object construction, returns null and the + current node is not changed. + + The previous Node, if any. + + + + Moves the current Node to the first visible ancestor node in the + document order, and returns the found node. It also moves the + current node to this one. If no such node exists, or if it is + before that the root node defined at the object construction, + returns null and the current node is not changed. + + + + + + Moves the current Node to the first visible child of the current + node, and returns the found child. It also moves the current node + to this child. If no such child exists, returns null and the + current node is not changed. + + + + + + Moves the current Node to the last visible child of the current + node, and returns the found child. It also moves the current node + to this child. If no such child exists, returns null and the + current node is not changed. + + + + + + Moves the current Node to its previous sibling, if any, and returns + the found sibling. I there is no such node, return null and the + current node is not changed. + + + + + + Moves the current Node to its next sibling, if any, and returns the + found sibling. I there is no such node, return null and the current + node is not changed. + + + + + + The URLUtils interface defines utility methods to work with URLs. + + + + + Gets or sets the whole URL. + + + + + Gets or sets the protocol scheme of the URL, including the final + ':'. + + + + + Gets or sets the host, that is the hostname, a ':', and the port of + the URL. + + + + + Gets or sets the domain of the URL. + + + + + Gets or sets the port number of the URL. + + + + + Gets or sets an initial '/' followed by the path of the URL. + + + + + Gets or sets a '?' followed by the parameters of the URL. + + + + + Gets or sets a '#' followed by the fragment identifier of the URL. + + + + + Gets or sets the username specified before the domain name.. + + + + + Gets or sets the password specified before the domain name. + + + + + Gets the canonical form of the origin of the specific location. + + + + + The interface for a browsing window element. + https://developer.mozilla.org/en-US/docs/Web/API/Window + + + + + Gets a reference to the document that the window contains. + + + + + Gets the location of the current document. + + + + + Gets if the window has been closed. + + + + + Gets or sets the status of the window. + + + + + Gets or sets the name of the window. + + + + + Gets the height of the outside of the browser window. + + + + + Gets the width of the outside of the browser window. + + + + + Gets the horizontal distance of the left border of the user's + browser from the left side of the screen. + + + + + Gets the vertical distance of the top border of the user's browser + from the top side of the screen. + + + + + Gets the proxy to the current browsing context. + + + + + Gets the user-agent information. + + + + + Closes the window. + + + + + Opens a window to show url, and returns it. If a window exists with + the provided name already, it is reused. + + The URL to open initially. + The name of the new window. + + Determines the rendering of the new window. + + + Can be used to remove whatever page is currently open from the + session history. + + The new or reused window. + + + + Stops the current document from being loaded. + + + + + Focuses the current window. + + + + + Removes the focus from the current window. + + + + + Shows the messagebox with the given message. + + The message to display. + + + + Opens a confirmation box with the provided message. + + The message to display. + + True if the message has been confirmed, otherwise false. + + + + + Opens the print dialog for the current window. + + + + + Gets the history of the current window. + + + + + Providers timers to the Window object. + + + + + Executes the provided handler after the timeout. + + + The handler that is called after the timeout. + + The timeout in milliseconds. + + The handler to reference clear the timeout. + + + + + Clears a timeout. + + + The handle that specifies, which timeout to clear. + + + + + Keeps executing the provided handler with the interval. + + The handler that is called each time. + The interval in milliseconds. + The handler to reference clear the interval. + + + + Clears an interval. + + + The handle that specifies, which interval to clear. + + + + + Defines the callback signature for a mutation event. + + The sequence of mutations. + The observer. + + + + MutationObserver provides developers a way to react to changes in a + DOM. + + + + + Creates a new mutation observer with the provided callback. + + The callback to trigger. + + + + Queues a record. + + The record to queue up. + + + + Triggers the execution if the queue is not-empty. + + + + + Gets the options, if any, for the given node. If null is returned + then the node is not being observed. + + The node of interest. + The options set for the provided node. + + + + Adds a transient observer for the given node with the provided + ancestor, if the node's ancestor is currently observed. + + + The ancestor that is currently observed. + + + The node to observe as a transient observer. + + + + + Clears all transient observers. + + + + + Stops the MutationObserver instance from receiving + notifications of DOM mutations. Until the observe() + method is used again, observer's callback will not be invoked. + + + + + Registers the MutationObserver instance to receive notifications of + DOM mutations on the specified node. + + + The Node on which to observe DOM mutations. + + + If additions and removals of the target node's child elements + (including text nodes) are to be observed. + + + If mutations to not just target, but also target's descendants are + to be observed. + + + If mutations to target's attributes are to be observed. + + + If mutations to target's data are to be observed. + + + If attributes is set to true and target's attribute value before + the mutation needs to be recorded. + + + If characterData is set to true and target's data before the + mutation needs to be recorded. + + + The attributes to observe. If this is not set, then all attributes + are being observed. + + + + + Empties the MutationObserver instance's record queue and returns + what was in there. + + Returns an Array of MutationRecords. + + + + Contains a list of common namespaces. + + + + + Gets the namespace for HTML elements. + + + + + Gets the namespace for XMLNS elements. + + + + + Gets the namespace for XMLNS elements. + + + + + Gets the namespace for XML elements. + + + + + Gets the namespace for SVG elements. + + + + + Gets the namespace for MathML elements. + + + + + Gets the prefix for XMLNS elements. + + + + + Gets the prefix for XMLNS elements. + + + + + Gets the prefix for XML elements. + + + + + Useful methods for node objects. + + + + + Gets the root of the given node, which is the node itself, if it has + no parent, or the root of the parent. + + The node to get the root of. + The root node. + + + + Checks if the provided node is an endpoint, i.e., does not host any + other node. + + The node that is checked. + True if the node is an endpoint, otherwise false. + + + + Checks if the provided node can be inserted into some other node. + This excludes, e.g., documents from being inserted. + + The node that is checked. + True if the node is insertable, otherwise false. + + + + Gets the hyperreference of the given URL - transforming the given + (relative) URL to an absolute URL if required. + + The node that spawns the hyper reference. + The given URL. + The absolute URL. + + + + Checks if the node is an descendant of the given parent. + + The descendant node to use. + The possible parent to use. + + True if the given parent is actually an ancestor of the node. + + + + + Gets the descendant nodes of the provided parent, in tree order. + + The parent of the descendants. + An iterator over all descendants. + + + + Gets the descendant nodes and itself of the provided parent, in tree order. + + The parent of the descendants. + An iterator over all descendants and itself. + + + + Checks if the node is an inclusive descendant of the given parent. + + The descendant node to use. + The possible parent to use. + + True if the given parent is actually an inclusive ancestor of the + provided node. + + + + + Checks if the parent is an ancestor of the given node. + + The possible parent to use. + The node to check for being descendent. + + True if the given parent is actually an ancestor of the node. + + + + + Gets the ancestor nodes of the provided node, in tree order. + + The child of the ancestors. + An iterator over all ancestors. + + + + Gets the inclusive ancestor nodes of the provided node, in tree + order. + + The child of the ancestors. + + An iterator over all ancestors including the given node. + + + + + Checks if the parent is an inclusive ancestor of the given node. + + The possible parent to use. + The node to check for being descendent. + + True if the given parent is actually an inclusive ancestor of the + provided node. + + + + + Gets the first ancestor node that is of the specified type. + + The child of the potential ancestor. + The specified ancestor or its default value. + + + + Checks if any parent is an HTML datalist element.. + + The node to use as starting point. + + True if a datalist element is among the ancestors, otherwise false. + + + + + Checks if the current node is a sibling of the specified element. + + The maybe sibling. + + The node to check for having the same parent. + + + True if the parent is actually non-null and actually the same. + + + + + Gets the index of the provided node in the parent's collection. + + The node which needs to know its index. + + The index of the node or -1 if the node is not a child of a parent. + + + + + Finds the index of the given node of the provided parent node. + + The parent of the given node. + The node which needs to know its index. + + The node's index or -1 if the node is not a child of the parent. + + + + + Checks if the context node is before the provided node. + + The context node. + The provided ref node. + + True if the context node is preceding the ref node in tree order. + + + + + Checks if the context node is after the provided node. + + The context node. + The provided ref node. + + True if the context node is following the ref node in tree order. + + + + + Gets the associated host object, if any. This is mostly interesting + for the HTML5 template tag. + + The node that probably has an host object + The host object or null. + + + + Checks for an inclusive ancestor relationship or if the host (if + any) has such a relationship. + + The possible parent to use. + The node to check for being descendent. + + True if the given parent is actually an inclusive ancestor + (including the host) of the provided node. + + + + + Ensures the validity for inserting the given node at parent before + the provided child. Throws an error is the insertation is invalid. + + The origin that will be mutated. + The node to be inserted. + The reference node of the insertation. + + + + Pre-inserts the given node at the parent before the provided child. + + The origin that will be mutated. + The node to be inserted. + The reference node of the insertation. + The inserted node, which is node. + + + + Pre-removes the given child of the parent. + + The origin that will be mutated. + The node that will be removed. + The removed node, which is child. + + + + Checks if the node has any text node children. + + The parent of the potential text nodes. + + True if the node has any text nodes, otherwise false. + + + + + Checks if the given child is followed by a document type. + + The child that precedes the doctype. + + True if a doctype node is following the child, otherwise false. + + + + + Checks if the given child is preceded by an element node. + + The child that follows any element. + + True if an element node is preceded the child, otherwise false. + + + + + Gets the element count of the given node. + + The parent of potential element nodes. + The number of element nodes in the parent. + + + + Tries to find a direct child of a certain type. + + The node type to find. + The parent that contains the elements. + The instance or null. + + + + Tries to find a descendant of a certain type. + + The node type to find. + The parent that contains the elements. + The instance or null. + + + + Gets the assigned slot given by the shadow root and the slot name. + + The shadow tree hosting the slots. + The name of the slot to target. + The slot or default slot, if any. + + + + Gets the content text of the given DOM node. + + The node to stringify. + The text of the node and its children. + + + + Sets the text content of the given elements. + + The type of collection. + The collection. + The text that should be set. + The collection itself. + + + + Gets the index of the given item in the list of nodes. + + The source list of nodes. + The item to search for. + The index of the item or -1 if not found. + + + + The signature for a NodeFilter callback function. + + The node to examine. + The result after the examination of the node. + + + + Contains an enumeration of various node types. + + + + + A standard node element. + + + + + An attribute node. + + + + + A text node. + + + + + A CData text node. + + + + + An entity reference node. + + + + + An entity node. + + + + + A processing instruction node. + + + + + A comment node. + + + + + A document node. + + + + + A document type node. + + + + + A document (fragment mode) node. + + + + + A notation node. + + + + + Useful methods for parent node objects. + + + + + Runs the mutation macro as defined in 5.2.2 Mutation methods + of http://www.w3.org/TR/domcore/. + + The parent, which invokes the algorithm. + The nodes array to add. + A (single) node. + + + + Prepends nodes to the parent node. + + The parent, where to prepend to. + The nodes to prepend. + + + + Appends nodes to parent node. + + The parent, where to append to. + The nodes to append. + + + + Inserts nodes before the given child. + + The context object. + The nodes to insert before. + The current element. + + + + Inserts nodes after the given child. + + The context object. + The nodes to insert after. + The current element. + + + + Replaces the given child with the nodes. + + The context object. + The nodes to replace. + + + + Removes the child from its parent. + + The context object. + + + + Inserts a node as the last child node of this element. + + The type of element to add. + The parent of the node to add. + The element to be appended. + The appended element. + + + + Inserts the newElement immediately before the referenceElement. + + The type of element to add. + The parent of the node to add. + The node to be inserted. + + The existing child element that will succeed the new element. + + The inserted element. + + + + Removes a child node from the current element, which must be a + child of the current node. + + The type of element. + The parent of the node to remove. + The element to be removed. + The removed element. + + + + Returns the first element matching the selectors with the provided + type, or null. + + The type to look for. + The parent of the nodes to gather. + The group of selectors to use. + The element, if there is any. + + + + Returns a list of elements matching the selectors with the + provided type. + + The type to look for. + The parent of the nodes to gather. + The group of selectors to use. + An enumeration with the elements. + + + + Gets the descendent nodes of the given parent. + + The type of nodes to obtain. + The parent of the nodes to gather. + The descendent nodes. + + + + Gets the descendent nodes of the given parent. + + The parent of the nodes to gather. + The descendent nodes. + + + + Gets the descendent nodes including itself of the given parent. + + The type of nodes to obtain. + The parent of the nodes to gather. + The descendent nodes including itself. + + + + Gets the descendent nodes including itself of the given parent. + + The parent of the nodes to gather. + The descendent nodes including itself. + + + + Gets the ancestor nodes of the given child. + + The type of nodes to obtain. + The child of the nodes to gather. + The ancestor nodes. + + + + Gets the ancestor nodes of the given child. + + The child of the nodes to gather. + The ancestor nodes. + + + + Extensions for performing QuerySelector operations. + + + + + Returns the first element within the document (using depth-first pre-order traversal + of the document's nodes) that matches the specified group of selectors. + Requires either a non-empty nodelist or a valid scope node. + + The nodes to take as source. + A string containing one or more CSS selectors separated by commas. + The optional node to take as scope. + An element object. + + + + Returns a list of the elements within the document (using depth-first pre-order traversal + of the document's nodes) that match the specified group of selectors. + Requires either a non-empty nodelist or a valid scope node. + + The nodes to take as source. + A string containing one or more CSS selectors separated by commas. + The optional node to take as scope. + A HTMLCollection with all elements that match the selection. + + + + Returns a set of elements which have all the given class names. + + The elements to take as source. + A string representing the list of class names to match; class names are separated by whitespace. + A collection of HTML elements. + + + + Returns a NodeList of elements with the given tag name. The complete document is searched, including the root node. + + The elements to take as source. + A string representing the name of the elements. The special string "*" represents all elements. + A NodeList of found elements in the order they appear in the tree. + + + + Returns a list of elements with the given tag name belonging to the given namespace. + The complete document is searched, including the root node. + + The elements to take as source. + The namespace URI of elements to look for. + Either the local name of elements to look for or the special value "*", which matches all elements. + A NodeList of found elements in the order they appear in the tree. + + + + Returns the first element within the document (using depth-first pre-order traversal + of the document's nodes) that matches the given selector. + + The elements to take as source. + A selector object. + An element object. + + + + Returns the first element within the document (using depth-first pre-order traversal + of the document's nodes) that matches the specified group of selectors. + + The elements to take as source. + A selector object. + An element object. + + + + Returns a list of the elements within the document (using depth-first pre-order traversal + of the document's nodes) that matches the selector. + + The elements to take as source. + A selector object. + A HTMLCollection with all elements that match the selection. + + + + Returns a list of the elements within the document (using depth-first pre-order traversal + of the document's nodes) that match the specified group of selectors. + + The elements to take as source. + A selector object. + A reference to the list where to store the results. + + + + Returns true if the underlying string contains all of the tokens, otherwise false. + + The list that is considered. + The tokens to consider. + True if the string contained all tokens, otherwise false. + + + + Returns a set of elements which have all the given class names. + + The elements to take as source. + An array with class names to consider. + A reference to the list where to store the results. + + + + Returns a NodeList of elements with the given tag name. The complete document is searched, including the root node. + + The elements to take as source. + A string representing the name of the elements. The special string "*" represents all elements. + A reference to the list where to store the results. + + + + Returns a list of elements with the given tag name belonging to the given namespace. + The complete document is searched, including the root node. + + The elements to take as source. + The namespace URI of elements to look for. + Either the local name of elements to look for or the special value "*", which matches all elements. + A reference to the list where to store the results. + + + + An enumeration of possible values for position comparisons in a range object. + + + + + The position of the given point to the other point is before. + + + + + The position of the given point to the other point is equal. + + + + + The position of the given point to the other point is after. + + + + + An enumeration with possible values on how to compare boundary points. + + + + + From the start to the start (periodic). + + + + + From the start to the end (non-periodic). + + + + + From the end to the end (periodic). + + + + + From the end to the start (non-periodic). + + + + + Defines a set of extension methods involving selectors. + + + + + Reduces the elements to the one at the given index, if any. + + The type of element. + The collection. + The index of the element. + The element, or its default value. + + + + Reduces the elements to the ones above the given index. + + The type of element. + The collection. + The minimum exclusive index. + The remaining elements. + + + + Reduces the elements to the ones below the given index. + + The type of element. + The collection. + The maximum exclusive index. + The remaining elements. + + + + Reduces the elements to the ones with even index. + + The type of element. + The collection. + The remaining elements. + + + + Reduces the elements to the ones with odd index. + + The type of element. + The collection. + The remaining elements. + + + + Keeps elements that are matched by the provided selector. + + The elements to be filtered. + The CSS selector to use. + The filtered list of elements. + + + + Keeps elements that are not matched by the provided selector. + + The elements to be filtered. + The CSS selector to use. + The filtered list of elements. + + + + Gets the children of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements owning the children. + The CSS selector to use, if any. + A filtered list containing the children. + + + + Gets the siblings of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the siblings. + + + + Gets the parents of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements with parents. + The CSS selector to use, if any. + A filtered list containing the parents. + + + + Gets the following siblings of the provided elements. Optionally + uses a CSS selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the next siblings. + + + + Gets the preceding siblings of the provided elements. Optionally + uses a CSS selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the previous siblings. + + + + Keeps elements that are matched by the provided selector. + + The elements to be filtered. + The CSS selector to use. + The filtered list of elements. + + + + Keeps elements that are not matched by the provided selector. + + The elements to be filtered. + The CSS selector to use. + The filtered list of elements. + + + + Gets the children of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements owning the children. + The CSS selector to use, if any. + A filtered list containing the children. + + + + Gets the siblings of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the siblings. + + + + Gets the parents of the provided elements. Optionally uses a CSS + selector to filter the results. + + The elements with parents. + The CSS selector to use, if any. + A filtered list containing the parents. + + + + Gets the following siblings of the provided elements. Optionally + uses a CSS selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the next siblings. + + + + Gets the preceding siblings of the provided elements. Optionally + uses a CSS selector to filter the results. + + The elements with siblings. + The CSS selector to use, if any. + A filtered list containing the previous siblings. + + + + List of possible shadow root mode states. + + + + + Specifies open encapsulation mode. + + + + + Specifies closed encapsulation mode. + + + + + The collection of (known / used) tags. + + + + + Gets the DOCTYPE constant. + + + + + The html tag. + + + + + The body tag. + + + + + The head tag. + + + + + The meta tag. + + + + + The title tag. + + + + + The bgsound tag. + + + + + The script tag. + + + + + The style tag. + + + + + The noembed tag. + + + + + The noscript tag. + + + + + The noframes tag. + + + + + The menu tag. + + + + + The menuitem tag. + + + + + The var tag. + + + + + The ruby tag. + + + + + The sub tag. + + + + + The sup tag. + + + + + The rp tag. + + + + + The rt tag. + + + + + The rb tag. + + + + + The rtc tag. + + + + + The applet tag. + + + + + The embed tag. + + + + + The marquee tag. + + + + + The param tag. + + + + + The object tag. + + + + + The canvas tag. + + + + + The font tag. + + + + + The ins tag. + + + + + The del tag. + + + + + The template tag. + + + + + The slot tag. + + + + + The caption tag. + + + + + The col tag. + + + + + The colgroup tag. + + + + + The table tag. + + + + + The thead tag. + + + + + The tbody tag. + + + + + The tfoot tag. + + + + + The th tag. + + + + + The td tag. + + + + + The tr tag. + + + + + The input tag. + + + + + The keygen tag. + + + + + The textarea tag. + + + + + The p tag. + + + + + The span tag. + + + + + The dialog tag. + + + + + The fieldset tag. + + + + + The legend tag. + + + + + The label tag. + + + + + The details tag. + + + + + The form tag. + + + + + The isindex tag. + + + + + The pre tag. + + + + + The data tag. + + + + + The datalist tag. + + + + + The ol tag. + + + + + The tag ul. + + + + + The dl tag. + + + + + The li tag. + + + + + The dd tag. + + + + + The dt tag. + + + + + The b tag. + + + + + The big tag. + + + + + The strike tag. + + + + + The code tag. + + + + + The em tag. + + + + + The i tag. + + + + + The s tag. + + + + + The small tag. + + + + + The strong tag. + + + + + The u tag. + + + + + The tt tag. + + + + + The nobr tag. + + + + + The select tag. + + + + + The option tag. + + + + + The optgroup tag. + + + + + The link tag. + + + + + The frameset tag. + + + + + The frame tag. + + + + + The iframe tag. + + + + + The audio tag. + + + + + The video tag. + + + + + The source tag. + + + + + The track tag. + + + + + The h1 tag. + + + + + The h2 tag. + + + + + The h3 tag. + + + + + The h4 tag. + + + + + The h5 tag. + + + + + The h6 tag. + + + + + The div tag. + + + + + The quote tag. + + + + + The blockquote tag. + + + + + The q tag. + + + + + The base tag. + + + + + The basefont tag. + + + + + The a tag. + + + + + The area tag. + + + + + The button tag. + + + + + The cite tag. + + + + + The main tag. + + + + + The summary tag. + + + + + The xmp tag. + + + + + The br tag. + + + + + The wbr tag. + + + + + The hr tag. + + + + + The dir tag. + + + + + The center tag. + + + + + The listing tag. + + + + + The img tag. + + + + + The image tag (this is not the right tag). + + + + + The nav tag. + + + + + The address tag. + + + + + The article tag. + + + + + The aside tag. + + + + + The figcaption tag. + + + + + The figure tag. + + + + + The section tag. + + + + + The footer tag. + + + + + The header tag. + + + + + The hgroup tag. + + + + + The plaintext tag. + + + + + The time tag. + + + + + The progress tag. + + + + + The meter tag. + + + + + The output tag. + + + + + The map tag. + + + + + The picture tag. + + + + + The mark tag. + + + + + The dfn tag. + + + + + The kbd tag. + + + + + The samp tag. + + + + + The abbr tag. + + + + + The bdi tag. + + + + + The bdo tag. + + + + + The math tag. + + + + + The mi tag. + + + + + The mo tag. + + + + + The mn tag. + + + + + The ms tag. + + + + + The mtext tag. + + + + + The annotation-xml tag. + + + + + The svg tag. + + + + + The foreignObject tag. + + + + + The desc tag. + + + + + The circle tag. + + + + + The xml tag. + + + + + The list of possible vertical alignments (extended by CSS). + + + + + Aligns the baseline of the element with the baseline of its parent. + The baseline of some replaced elements, like textarea is not specified + by the HTML specification, meaning that their behavior with this keyword + may change from one browser to the other. + + + + + Aligns the baseline of the element with the subscript-baseline + of its parent. + + + + + Aligns the baseline of the element with the superscript-baseline + of its parent. + + + + + Aligns the top of the element with the top of the parent + element's font. + + + + + Aligns the bottom of the element with the bottom of the parent + element's font. + + + + + Aligns the middle of the element with the middle of lowercase + letters in the parent. + + + + + Align the top of the element and its descendants with the top + of the entire line. + + + + + Align the bottom of the element and its descendants with the + bottom of the entire line. + + + + + An enumeration with the various visibility states. + + + + + Default value, the box is visible. + + + + + The box is invisible (fully transparent, nothing is drawn), + but still affects layout. + + + + + For table rows, columns, column groups, and row groups the + row(s) or column(s) are hidden and the space they would have + occupied is removed (as if display: none were applied to the + column/row of the table). However, the size of other rows and + columns is still calculated as though the cells in the collapsed + row(s) or column(s) are present. This was designed for fast + removal of a row/column from a table without having to recalculate + widths and heights for every portion of the table. For XUL elements, + the computed size of the element is always zero, regardless of other + styles that would normally affect the size, although margins still + take effect. For other elements, collapse is treated the same as hidden. + + + + + The list of possible horizontal alignments. + + + + + Use the default line break rule. + + + + + Word breaks may be inserted between any + character for non-CJK (Chinese/Japanese/Korean) text. + + + + + Don't allow word breaks for CJK text. + Non-CJK text behavior is the same as for normal. + + + + + Extensions for formatting, e.g., markup or styling. + + + + + Returns the (complete) CSS style representation of the node. + + The style node to format. + The source code snippet. + + + + Returns the (complete) CSS style representation of the node. + + The style node to format. + The formatter to use. + The source code snippet. + + + + Writes the serialization of the node guided by the formatter. + + The style node to format. + The output target of the serialization. + + + + Returns the (complete) HTML markup representation of the node. + + The markup node to format. + The source code snippet. + + + + Returns the serialization of the node guided by the formatter. + + The markup node to format. + The formatter to use. + The source code snippet. + + + + Writes the serialization of the node guided by the formatter. + + The markup node to format. + The output target of the serialization. + + + + Returns a minified serialization of the node guided by the + MinifyMarkupFormatter with the default options. + + The markup node to format. + The source code snippet. + + + + Returns a prettified serialization of the node guided by the + PrettyMarkupFormatter with the default options. + + The markup node to format. + The source code snippet. + + + + Provides string to InputType instance mappings. + + + + + Represents a creator delegate for creating input type providers. + + The input to create the provider for. + The created input type provider. + + + + Registers a new creator for the specified input type. + Throws an exception if another creator for the given + input type is already added. + + The input type value. + The creator to invoke. + + + + Unregisters an existing creator for the given input type. + + The input type value. + The registered creator, if any. + + + + Creates the default InputType provider for the given input element + and input type. By default this is the text input type. + + The input element. + The current value of the type attribute. + The InputType provider instance. + + + + Creates an InputType provider for the provided element. + + The input element. + The current value of the type attribute. + The InputType provider instance. + + + + Provides string to Relation instance mappings. + + + + + Represents a creator delegate for creating link relation providers. + + The link to create the provider for. + The created link relation provider. + + + + Registers a new creator for the specified relation. + Throws an exception if another creator for the given + relation is already added. + + The relation value. + The creator to invoke. + + + + Unregisters an existing creator for the given relation. + + The relation value. + The registered creator, if any. + + + + Creates the default LinkRel provider for the given link element + and relation. By default this is null. + + The link element. + The current value of the rel attribute. + The LinkRel provider instance or null. + + + + Creates an LinkRel provider for the provided element. + + The link element. + The current value of the rel attribute. + The LinkRel provider instance or null. + + + + Represents the event arguments for a composed event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the data to carry. + + + + Gets the associated data. + + + + + Initializes the composition event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the data to carry. + + + + The event that is published in case of an HTML parse error. + + + + + Creates a new HtmlParseErrorEvent event. + + The provided error code. + The position in the source. + + + + + Gets the position of the error. + + + + + Gets the provided error code. + + + + + Gets the associated error message. + + + + + The event that is published in case of starting HTML parsing. + + + + + Creates a new event for starting HTML parsing. + + The document to be filled. + Determines if parsing is done. + + + + Gets the document, which is to be filled. + + + + + Represents the event arguments for an input event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the data for the input event. + + + + Gets the data that has been entered. + + + + + Initializes the input event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the data for the input event. + + + + Represents a list with touch points. + + + + + Gets the number of contained touch points. + + + + + Gets the data of the touch point at the given index. + + The index of the touch point. + The touch point at the index. + + + + Represents the interface for the data of a single touch point. + + + + + Gets the id of the touch point. + + + + + Gets the target of the touch point. + + + + + Gets the x-coordinate relative to the screen. + + + + + Gets the y-coordinate relative to the screen. + + + + + Gets the x-coordinate relative to the client. + + + + + Gets the y-coordinate relative to the client. + + + + + Gets the x-coordinate relative to the page. + + + + + Gets the y-coordinate relative to the page. + + + + + Represents the event arguments for a keyboard event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UI event. + Sets the key that is currently pressed. + Sets the position of the originating keyboard. + A list with keyboard modifiers that have been pressed. + Sets if the key has been pressed again. + + + + Gets string representation of the pressed key. + + + + + Gets the location of the keyboard that initiated the event. + + + + + Gets if the control key is pressed. + + + + + Gets if the shift key is pressed. + + + + + Gets if the alt key is pressed. + + + + + Gets if the meta key is pressed. + + + + + Gets if the key press was repeated. + + + + + Returns the current state of the specified modifier key. + + The modifier key to lookup. + True if the key is currently pressed, otherwise false. + + + + Gets the locale of the keyboard. + + + + + Initializes the keyboard event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UI event. + Sets the key that is currently pressed. + Sets the position of the originating keyboard. + A list with keyboard modifiers that have been pressed. + Sets if the key has been pressed again. + + + + An enumeration over all possible keyboard locations. + + + + + The standard location. + + + + + The left location. + + + + + The right location. + + + + + The location of the numpad. + + + + + A couple of useful extensions for the modifier list. + + + + + All possible mouse button values that may appear in UI events. + + + + + The primary button of the device. In general, the left button or the only button on single-button + devices, used to activate a user interface control or select text. + + + + + The auxiliary button. In general, the middle button, often combined with a mouse wheel. + + + + + The secondary button. In general, the right button, often used to display a context menu. + + + + + All possible mouse button values that are currently pressed. + + + + + No buttons currently pressed. + + + + + The primary button of the device. In general, the left button or the only button on single-button + devices, used to activate a user interface control or select text. + + + + + The secondary button. In general, the right button, often used to display a context menu. + + + + + The auxiliary button. In general, the middle button, often combined with a mouse wheel. + + + + + Represents the event args for a mouse event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UI event. + Sets the screen X coordinate. + Sets the screen Y coordinate. + Sets the client X coordinate. + Sets the client Y coordinate. + Sets if the control key was pressed. + Sets if the alt key was pressed. + Sets if the shift key was pressed. + Sets if the meta key was pressed. + Sets which button has been pressed. + The target of the mouse event. + + + + Gets the screen X coordinates. + + + + + Gets the screen Y coordinates. + + + + + Gets the client X coordinates. + + + + + Gets the client Y coordinates. + + + + + Gets if the control key is pressed. + + + + + Gets if the shift key is pressed. + + + + + Gets if the alt key is pressed. + + + + + Gets if the meta key is pressed. + + + + + Gets which button has been pressed. + + + + + Gets the currently pressed buttons. + + + + + Gets the target of the mouse event. + + + + + Returns the current state of the specified modifier key. + + The modifier key to lookup. + True if the key is currently pressed, otherwise false. + + + + Initializes the mouse event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + Sets the screen X coordinate. + Sets the screen Y coordinate. + Sets the client X coordinate. + Sets the client Y coordinate. + Sets if the control key was pressed. + Sets if the alt key was pressed. + Sets if the shift key was pressed. + Sets if the meta key was pressed. + Sets which button has been pressed. + The target of the mouse event. + + + + Represents the event arguments for a touch event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + The list of active touches. + The list of target-active toches. + The list of changed touches. + Sets if the control key was pressed. + Sets if the alt key was pressed. + Sets if the shift key was pressed. + Sets if the meta key was pressed. + + + + Gets a list with all active touch points. + + + + + Gets a list with touch points over the target. + + + + + Gets a list with changed touch points. + + + + + Gets if the alt key is pressed. + + + + + Gets if the meta key is pressed. + + + + + Gets if the control key is pressed. + + + + + Gets if the shift key is pressed. + + + + + Initializes the focus event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + The list of active touches. + The list of target-active toches. + The list of changed touches. + Sets if the control key was pressed. + Sets if the alt key was pressed. + Sets if the shift key was pressed. + Sets if the meta key was pressed. + + + + Represents a track that provides an additional track information. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + The track object. + + + + Gets the assigned track object, if any. + + + + + Initializes the mouse event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + The track object. + + + + Represents the event args for a mouse wheel event. + + + + + Creates a new event. + + + + + Creates a new event and initializes it. + + The type of the event. + If the event is bubbling. + If the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UI event. + Sets the screen X coordinate. + Sets the screen Y coordinate. + Sets the client X coordinate. + Sets the client Y coordinate. + Sets which button has been pressed. + The target of the mouse event. + A list with keyboard modifiers that have been pressed. + The mouse wheel delta in X direction. + The mouse wheel delta in Y direction. + The mouse wheel delta in Z direction. + The delta mode for the wheel event. + + + + Gets the mouse wheel delta X. + + + + + Gets the mouse wheel delta Y. + + + + + Gets the mouse wheel delta Z. + + + + + Gets the mouse wheel delta mode. + + + + + Initializes the mouse wheel event. + + The type of event. + Determines if the event bubbles. + Determines if the event is cancelable. + Sets the associated view for the UI event. + Sets the detail id for the UIevent. + Sets the screen X coordinate. + Sets the screen Y coordinate. + Sets the client X coordinate. + Sets the client Y coordinate. + Sets which button has been pressed. + The target of the mouse event. + A list with keyboard modifiers that have been pressed. + The mouse wheel delta in X direction. + The mouse wheel delta in Y direction. + The mouse wheel delta in Z direction. + The delta mode for the wheel event. + + + + Enumeration with the various mouse wheel modes. + + + + + The unit of change is pixels. + + + + + The unit of change is lines. + + + + + The unit of change is pages. + + + + + A set of useful extension methods when dealing with the DOM. + + + + + Set the field values of given form by using the dictionary which + contains name value pairs of input fields. + + The form to set. + The fields to use as values. + + What to do if some field(s) have not been found in the form. If + true, then new input will be created. Otherwise, an exception will + be thrown. + + The given form for chaining. + + + + Submits the given form by decomposing the object into a dictionary + that contains its properties as name value pairs. + + The form to submit. + The fields to use as values. + The task eventually resulting in the response. + + + + Submits the given form by using the dictionary which contains name + value pairs of input fields to submit. + + The form to submit. + The fields to use as values. + + What to do if some field(s) have not been found in the form. If + true, then new input will be created. Otherwise, an exception will + be thrown. + + The task eventually resulting in the response. + + + + Submits the form of the element by decomposing the object into a dictionary + that contains its properties as name value pairs. + + The element to submit its form. + The optional fields to use as values. + The task eventually resulting in the response. + + + + Submits the form of the element by using the dictionary which contains name + value pairs of input fields to submit. + + The element to submit its form. + The fields to use as values. + + What to do if some field(s) have not been found in the form. If + true, then new input will be created. Otherwise, an exception will + be thrown. + + The task eventually resulting in the response. + + + + Represents the a HTML element. + + + + + Gets or sets the name of the target frame to which the resource applies. + + + + + Gets or sets the linked resource is intended to be downloaded rather than displayed. + The value represent the proposed name of the file. If the name is not a valid filename of the + underlying OS, the navigator will adapt it. + + + + + Gets the element's ping attribute as a settable list of tokens. + + + + + Gets or sets the rel HTML attribute, specifying the relationship + of the target object to the link object. + + + + + Gets the rel HTML attribute, as a list of tokens. + + + + + Gets or sets the language code for the linked resource. + + + + + Gets or sets the type of the resource. If present, the attribute must be a valid MIME type. + + + + + Gets the text of the anchor tag (same as TextContent). + + + + + Represents the area HTML element. + + + + + Gets or sets the alternative text for the element. + + + + + Gets or sets the coordinates to define the hot-spot region. + + + + + Gets or sets the shape of the hot-spot, limited to known values. + + + + + Gets or sets the browsing context in which to open the linked resource. + + + + + Gets or sets the linked resource is intended to be downloaded rather than displayed. + The value represent the proposed name of the file. If the name is not a valid filename of the + underlying OS, the navigator will adapt it. + + + + + Gets the ping HTML attribute, as a settable list of otkens. + + + + + Gets or sets the value indicating relationships of the + current document to the linked resource. + + + + + Gets the value indicating relationships of the current + document to the linked resource, as a list of tokens. + + + + + Gets or sets the language of the linked resource. + + + + + Gets or sets the MIME type of the linked resource. + + + + + Represents the audio HTML element. + + + + + Represents the base HTML element. + + + + + Gets or sets the hyperreference to the base URL. + + + + + Gets or sets the base target. + + + + + Represents the body HTML element. + + + + + Represents the br HTML element. + + + + + Represents the button HTML element. + + + + + Gets or sets the autofocus HTML attribute, which indicates whether the + control should have input focus when the page loads. + + + + + Gets or sets if the button is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets the list of assigned labels. + + + + + Gets or sets the name of the element. + + + + + Gets or sets the type of button. + + + + + Gets or sets the value. + + + + + Gets or sets the URI of a resource that processes information submitted by the button. + If specified, this attribute overrides the action attribute of the form element that owns this element. + + + + + Gets or sets the type of content that is used to submit the form to the server. If specified, this + attribute overrides the enctype attribute of the form element that owns this element. + + + + + Gets or sets the HTTP method that the browser uses to submit the form. If specified, this attribute + overrides the method attribute of the form element that owns this element. + + + + + Gets or sets that the form is not to be validated when it is submitted. If specified, this attribute + overrides the enctype attribute of the form element that owns this element. + + + + + Gets or sets A name or keyword indicating where to display the response that is received after submitting + the form. If specified, this attribute overrides the target attribute of the form element that owns this element. + + + + + Represents the canvas HTML element. + + + + + Gets or sets the pixel width of the canvas element. + + + + + Gets or sets the pixel height of the canvas element. + + + + + Returns a Data URI with the bitmap data of the context. + + The type of image e.g image/png. + A data URI with the data if any. + + + + Creates a BLOB out of the canvas pixel data and passes it + to the given callback. + + The callback function. + The type of object to create. + + + + Gets the drawing context. + + A context id like 2d. + An object that defines the drawing context. + + + + Changes the context the element is related to the given one. + + The new context. + + + + Gets an indicator if a context with the given parameters could be created. + + A context id like 2d. + True if the context is supported, otherwise false. + + + + Represents the command HTML element. + + + + + Gets or sets the type of command. + + + + + Gets or sets the assigned label. + + + + + Gets or sets the icon of the command. + + + + + Gets or sets if the command is disabled. + + + + + Gets or sets if the command is checked. + + + + + Gets or sets the id of the radio group of the command. + + + + + Gets the assigned element. + + + + + Represents the data HTML element. + + + + + Gets or sets the machine readable value. + + + + + Represents the datalist HTML element. + + + + + Gets the associated options. + + + + + Represents the details HTML element. + + + + + Gets or sets if the element is opened. + + + + + Repesents the dialog HTML element. + + + + + Gets or sets if the dialog is open. + + + + + Gets or sets the return value of the dialog. + + + + + Shows the dialog, optionally anchored to the element. + + The element, where the dialog is anchored. + + + + Shows the dialog modally, optionally anchored to the element. + + The element, where the dialog is anchored. + + + + Closes the dialog. + + The return value to set. + + + + Represents the div HTML element. + + + + + Serves as an entry point to the content of an HTML document. + + + + + The HTMLElement interface represents any HTML element. Some elements directly + implement this interface, other implement it via an interface that inherit it. + + + + + Gets or sets the value of the lang attribute. + + + + + Gets or sets the value of the title attribute. + + + + + Gets or sets the value of the dir attribute. + + + + + Gets access to all the custom data attributes (data-*) set on the element. It is a map of DOMString, + one entry for each custom data attribute. + + + + + Gets or sets if the element should be translated. + + + + + Gets or sets the position of the element in the tabbing order. + + + + + Gets or sets if spell-checking is activated. + + + + + Gets or sets whether or not the element is editable. This enumerated + attribute can have the values true, false and inherited. + + + + + Gets if the element is currently contenteditable. + + + + + Gets or sets if the element is hidden. + + + + + Gets or sets if the element is draggable. + + + + + Gets or sets the access key assigned to the element. + + + + + Gets the element's assigned access key. + + + + + Gets or sets the assigned context menu. + + + + + Gets the dropzone for this element. + + + + + Simulates a mouse click on an element. + + + + + Puts the keyboard focus on the given element. + + + + + Removes the keyboard focus on the given element. + + + + + Forces the invocation of a spell check on the content. + + + + + The embed HTML element. + + + + + Gets or sets the source of the object to embed. + + + + + Gets or sets the type of the embedded object. + + + + + Gets or sets the display width of the object. + + + + + Gets or sets the display height of the object. + + + + + Represents the fieldset HTML element. + + + + + Gets or sets if the element is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets or sets the value of the name attribute. + + + + + Gets the type of input control (fieldset). + + + + + Gets the elements belonging to this field set. + + + + + Represents a collection of HTML form controls. + + + + + Represents the form HTML element. + + + + + Gets or sets the character encodings that are to be used for the submission. + + + + + Gets or sets the form's name within the forms collection. + + + + + Gets or sets if autocomplete is turned on or off. + + + + + Gets or sets the encoding to use for sending the form. + + + + + Gets or sets the encoding to use for sending the form. + + + + + Gets or sets the method to use for transmitting the form. + + + + + Gets or sets the value of the name attribute. + + + + + Gets or sets the indicator that the form is not to be validated during submission. + + + + + Gets or sets the target name of the response to the request. + + + + + Gets the number of elements in the Elements collection. + + + + + Gets all the form controls belonging to this form element. + + + + + Submits the form element from the form element itself. + + + + + Submits the form element as triggered from another element. + + The form's submitter. + + + + Creates the document request from the form submitting itself. + + The resulting document (e.g., HTTP) request. + + + + Creates the document request from the form by submitting by + some element. + + The form's submitter. + The resulting document (e.g., HTTP) request. + + + + Resets the form to the previous (default) state. + + + + + Checks if the form is valid, i.e. if all fields fulfill their requirements. + + True if the form is valid, otherwise false. + + + + Reports the current validity state after checking the current state + interactively the constraints of the form element. + + True if the form element is valid, otherwise false. + + + + Gets the form element at the specified index. + + The index in the elements collection. + The element or null. + + + + Gets the form element(s) with the specified name. + + The name or id of the element. + A collection with elements, an element or null. + + + + Requests the input fields to be automatically filled with previous entries. + + + + + Represents the head HTML element. + + + + + Represents the heading HTML element(s). + + + + + Represents the hr HTML element. + + + + + Represents the html HTML element. + + + + + Gets or sets the value of the manifest attribute. + + + + + Represents the image HTML element. + + + + + Gets or sets the alternative text. + + + + + Gets the actual used image source. + + + + + Gets or sets the image source. + + + + + Gets or sets the image candidates for higher density images. + + + + + Gets or sets the sizes to responsively. + + + + + Gets or sets the cross-origin attribute. + + + + + Gets or sets the usemap attribute, which indicates that the image + has an associated image map. + + + + + Gets or sets if the image element is a map. The attribute must not + be specified on an element that does not have an ancestor a + element with an href attribute. + + + + + Gets or sets the displayed width of the image element. + + + + + Gets or sets the displayed width of the image element. + + + + + Gets the width of the image. + + + + + Gets the height of the image. + + + + + Gets if the image is completely available. + + + + + Represents the iframe HTML element. + + + + + Gets or sets the frame source. + + + + + Gets the content of the page that the nested browsing context is to contain. + + + + + Gets or sets the name of the frame. + + + + + Gets the tokens of the sandbox attribute. + + + + + Gets or sets if the seamless attribute has been set. + + + + + Gets or sets if the frame's content can trigger the fullscreen mode. + + + + + Gets or sets if the frame's content can trigger a payment request. + + + + + Gets or sets the frame's referrer policy. + + + + + Gets or sets the display width of the frame. + + + + + Gets or sets the display height of the frame. + + + + + Gets the document this frame contains, if there is any. + + + + + Gets the frame's parent's window context. + + + + + Represents the input HTML element. + + + + + Gets or sets the autofocus HTML attribute, which indicates whether + the control should have input focus when the page loads. + + + + + Gets or sets the accept HTML attribute, containing comma-separated + list of file types accepted by the server when type is file. + + + + + Gets or sets the autocomplete HTML attribute, indicating whether + the value of the control can be automatically completed by the + browser. Ignored if the value of the type attribute is hidden, + checkbox, radio, file, or a button type (button, submit, reset, + image). + + + + + Gets or sets if the textarea is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets the list of assigned labels. + + + + + Gets a list of selected files. + + + + + Gets or sets the name of the element. + + + + + Gets or sets the type of input control. + + + + + Gets or sets if the field is required. + + + + + Gets or sets if the field is read-only. + + + + + Gets or sets the alternative text. + + + + + Gets or sets the image source. + + + + + Gets or sets max HTML attribute, containing the maximum (numeric + or date-time) value for this item, which must not be less than its + minimum (min attribute) value. + + + + + Gets or sets the min HTML attribute, containing the minimum (numeric + or date-time) value for this item, which must not be greater than + its maximum (max attribute) value. + + + + + Gets or sets the pattern HTML attribute, containing a regular + expression that the control's value is checked against. The pattern + must match the entire value, not just some subset. This attribute + applies when the value of the type attribute is text, search, tel, + url or email; otherwise it is ignored. + + + + + Gets or sets the step HTML attribute, which works with min and max + to limit the increments at which a numeric or date-time value can be + set. It can be the string any or a positive floating point number. + If this is not set to any, the control accepts only values at + multiples of the step value greater than the minimum. + + + + + Increments the value by (step * n), where n defaults to 1 if not + specified. + + Optional: The number of steps to take. + + + + Decrements the value by (step * n), where n defaults to 1 if not + specified. + + Optional: The number of steps to take. + + + + Gets the datalist element in the same document. Only options that + are valid values for this input element will be displayed. This + attribute is ignored when the type attribute's value is hidden, + checkbox, radio, file, or a button type. + + + + + Gets or sets the URI of a resource that processes information + submitted by the button. If specified, this attribute overrides the + action attribute of the form element that owns this element. + + + + + Gets or sets the type of content that is used to submit the form to + the server. If specified, this attribute overrides the enctype + attribute of the form element that owns this element. + + + + + Gets or sets the HTTP method that the browser uses to submit the + form. If specified, this attribute overrides the method attribute + of the form element that owns this element. + + + + + Gets or sets that the form is not to be validated when it is + submitted. If specified, this attribute overrides the enctype + attribute of the form element that owns this element. + + + + + Gets or sets A name or keyword indicating where to display the + response that is received after submitting the form. If specified, + this attribute overrides the target attribute of the form element + that owns this element. + + + + + Gets or sets the default value. + + + + + Gets or sets the value. + + + + + Gets if the input field has a value (via attribute or directly). + + + + + Gets or sets the value of the element, interpreted as one of the + following in order: + 1.) Time value + 2.) Number + 3.) otherwise NaN. + + + + + Gets or sets the value of the element, interpreted as a date, or + null if conversion is not possible. + + + + + Gets or sets if the state if indeterminate. + + + + + Gets or sets + + + + + Gets or sets if the input element is checked or not. + + + + + Gets or sets the display size of the element. + + + + + Gets or sets the multiple HTML attribute, whichindicates whether + multiple items can be selected. + + + + + Gets or sets the maxlength HTML attribute, indicating the maximum + number of characters the user can enter. This constraint is + evaluated only when the value changes. + + + + + Gets or sets the minlength HTML attribute, indicating the minimum + number of characters the user can enter. This constraint is + evaluated only when the value changes. + + + + + Gets or sets the placeholder HTML attribute, containing a hint to + the user about what to enter in the control. + + + + + Gets or sets the display width of the input element. + + + + + Gets or sets the display height of the input element. + + + + + Gets the direction in which selection occurred. This is "forward" if + selection was performed in the start-to-end direction of the current + locale, or "backward" for the opposite direction. + + + + + Gets or sets the directionality of the form element. + + + + + Gets or sets the index of the beginning of selected text. If no + text is selected, contains the index of the character that + follows the input cursor. On being set, the control behaves as if + setSelectionRange() had been called with this as the first argument, + and selectionEnd as the second argument. + + + + + Gets or sets the index of the end of selected text. If no text + is selected, contains the index of the character that follows the + input cursor. On being set, the control behaves as if + setSelectionRange() had been called with this as the second + argument, and selectionStart as the first argument. + + + + + Selects the contents of the textarea. + + + + + Selects a range of text, and sets selectionStart and selectionEnd. + If either argument is greater than the length of the value, it is + treated as pointing to the end of the value. If end is less than + start, then both are treated as the value of end. + + The start of the selection. + The end of the selection. + + Optional: The direction of the selection. + + + + + Represents the keygen HTML element. + + + + + Gets or sets the autofocus HTML attribute, which indicates whether the + control should have input focus when the page loads. + + + + + Gets the list of assigned labels. + + + + + Gets or sets if the keygen is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets or sets the name of the element. + + + + + Gets the type of input control (keygen). + + + + + Gets or sets the type of encryption used. + + + + + Gets or sets the challenge attribute. + + + + + Represents the label HTML element. + + + + + Gets the form element that the label is assigned for, if any. + + + + + Gets or sets the ID of the labeled control. Reflects the for attribute. + + + + + Gets the control that the label is assigned for, if any. + + + + + Represents the legend HTML element. + + + + + Gets the associated form element, if any. + + + + + Represents a link HTML element. + + + + + Gets or sets if the stylesheet is enabled or disabled. + + + + + Gets or sets the URI for the target resource. + + + + + Gets or sets the forward relationship of the linked resource from the document to the resource. + + + + + Gets or sets the reverse relationship of the linked resource from the resource to the document. + + + + + Gets the list of relations contained in the rel attribute. + + + + + Gets or sets the use with one or more target media. + + + + + Gets or sets the language code for the linked resource. + + + + + Gets or sets the content type of the style sheet language. + + + + + Gets the list of sizes defined in the sizes attribute. + + + + + Gets or sets the linked source's integrity, if any. + + + + + Gets or sets the cross-origin attribute. + + + + + Gets or sets the nonce attribute. + + + + + Represents the li HTML element. + + + + + Gets or sets the value in an ordered list. + + + + + Represents the map HTML element. + + + + + Gets or sets the name. + + + + + Gets a collection representing the area elements + associated to this map. + + + + + Gets a collection representing the img and object + elements associated to this element. + + + + + Used to declare properties for the marquee element. + + + + + Gets the minimum delay in ms. + + + + + Gets or sets the amount of scrolling in pixels. + + + + + Gets or sets the delay of scrolling in ms. + + + + + Gets or sets the loop number. + + + + + Represents the base for all HTML media elements. + + + + + Gets or sets the media source. + + + + + Gets or sets the cross-origin attribute. + + + + + Gets or sets the preload attribute. + + + + + Gets or sets the id of the assigned media group. + + + + + Gets the current network state. + + + + + Gets if seeking is currently active. + + + + + Gets the current media source. + + + + + Gets the current media error, if any. + + + + + Gets the current media's controller, if any. + + + + + Gets if the media has ended. + + + + + Gets or sets if the media is automatically played. + + + + + Gets or sets if the media should loop. + + + + + Gets or sets if the controls should be shown to the user. + + + + + Gets or sets if the media is muted by default. + + + + + Loads the currently assigned media source. + + + + + Checks if the given type can be played. + + The type to check for. + One of the following values: probably, maybe or an empty string. + + + + Gets the datetime when the download started. + + + + + Gets a list of contained audio tracks. + + + + + Gets a list of contained video tracks. + + + + + Gets a list of contained text tracks. + + + + + Adds a new text track to the media element. + + The kind of text track to create. + The optional label of the track. + The optional language of the track. + The freshly created text track. + + + + Represents the menu HTML element. + + + + + Gets or sets the text label of the menu element. + + + + + Gets or sets the type of the menu element. + + + + + Represents the menuitem HTML element. + + + + + Gets the assigned master command, if any. + + + + + Gets or sets the type of command. + + + + + Gets or sets the user-visible label. + + + + + Gets or sets the icon for the command. + + + + + Gets or sets if the menuitem element is enabled or disabled. + + + + + Gets or sets if the menuitem element is checked or not. + + + + + Gets or sets if the menuitem element is the default command. + + + + + Gets or sets the name of group of commands to + treat as a radio button group. + + + + + Represents the meta HTML element. + + + + + Gets or sets the name of the meta element. + + + + + Gets or sets the value of the equivalent in a meta element, which + is effective if the server doesn't send a corresponding real header. + + + + + Gets or sets the associated charset. + + + + + Gets or sets the value of the content attribute of the meta element. + + + + + Represents the meter HTML element. + + + + + Gets or sets the current value. + + + + + Gets or sets the minimum value. + + + + + Gets or sets the maximum value. + + + + + Gets or sets the low value. + + + + + Gets or sets the high value. + + + + + Gets or sets the optimum value. + + + + + Represents the mod HTML element. + + + + + Gets the cite HTML attribute, containing a URI of a + resource explaining the change. + + + + + Gets the datetime HTML attribute, containing a date-and-time + string representing a timestamp for the change. + + + + + Represents the object HTML element. + + + + + Gets or sets the address of the resource. + + + + + Gets or sets the type of the resource. If present, + the attribute must be a valid MIME type. + + + + + Gets or sets an attribute whose presence indicates that the resource specified by the data + attribute is only to be used if the value of the type attribute and the Content-Type of the + aforementioned resource match. + + + + + Gets or sets the name of the object. + + + + + Gets or sets the associated image map of the object if the object element represents an image. + + + + + Gets the associated HTML form element. + + + + + Gets or sets the display width of the object element. + + + + + Gets or sets the display height of the object element. + + + + + Gets the active document of the object element's nested browsing context, if it has one; + otherwise returns null. + + + + + Gets the object element's nested browsing context, if it has one; otherwise returns null. + + + + + Represents the option HTML element. + + + + + Gets or sets if the option is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets or sets the label. + + + + + Gets or sets if the option is selected by default. + + + + + Gets or sets if the option is currently selected. + + + + + Gets or sets the value. + + + + + Gets or sets the text of the option. + + + + + Gets the index of the option element. + + + + + Represents a collection of HTML option elements. + + + + + Gets an HTML option element at the specified index. + + The index of the element. + The option at the given position. + + + + Sets an HTML option element at the specified index. + + The index of the element. + The option to set at the given position. + + + + Adds an option element to the collection. + + The element to add. + The optional reference element for inserting. + + + + Adds an options group element to the collection. + + The element to add. + The optional reference element for inserting. + + + + Removes an element from the collection. + + The index of the element of remove. + + + + Gets or sets the selected index. + + + + + Represents the optgroup HTML element. + + + + + Gets or sets if the optgroup is enabled or disabled. + + + + + Gets or sets the label. + + + + + Represents the ol HTML element. + + + + + Gets or sets if the order is reversed. + + + + + Gets or sets the lowest number. + + + + + Gets or sets the type of enumeration. + + + + + Represents the output HTML element. + + + + + Gets or sets the IDs of the input elements. + + + + + Gets or sets the default value. + + + + + Gets or sets the value. + + + + + Gets the list of assigned labels. + + + + + Gets the type of input control (output). + + + + + Gets the associated HTML form element. + + + + + Gets or sets the name of the element. + + + + + Represents the p HTML element. + + + + + Represents the param HTML element. + + + + + Gets or sets the name of the parameter. + + + + + Gets or sets the value of the parameter. + + + + + Represents the pre HTML element. + + + + + Represents the progress HTML element. + + + + + Gets or sets the current value. + + + + + Gets or sets the maximum value. + + + + + Gets the position. + + + + + Represents the q HTML element. + + + + + Gets or sets the citation of the element. + + + + + Represents the script HTML element. + + + + + Gets or sets the source URL of the script. + + + + + Gets or sets if the script should be run asynchronously. + + + + + Gets or sets if script execution should be deferred. + + + + + Gets or sets the type of script. + + + + + Gets or sets the character set of the script. + + + + + Gets or sets the cross-origin attribute. + + + + + Gets or sets the script's source code. + + + + + Gets or sets the linked source's integrity, if any. + + + + + Represents the select HTML element. + + + + + Gets or sets the autofocus HTML attribute, which indicates whether the + control should have input focus when the page loads. + + + + + Gets or sets if the button is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets the list of assigned labels. + + + + + Gets or sets the name of the element. + + + + + Gets or sets the value. + + + + + Gets the type of input element (select). + + + + + Gets or sets if the field is required. + + + + + Gets the set of options that are selected. + + + + + Gets or sets the display size of the element. + + + + + Gets the set of option elements contained by this element. + + + + + Gets the number of option elements in this select element. + + + + + Gets or sets the multiple HTML attribute, whichindicates whether multiple items can be selected. + + + + + Gets the index of the first selected option element. + + + + + Gets or sets an HTML option element at the specified index. + + The index of the element. + The option at the given position. + + + + Adds an option element to the options collection. + + The element to add. + The optional reference element for inserting. + + + + Adds an options group element to the options collection. + + The element to add. + The optional reference element for inserting. + + + + Removes an element from the options collection. + + The index of the element of remove. + + + + Represents a slot in the shadow tree. + + + + + Gets or sets the name attribute. + + + + + Gets the nodes from the distributed nodes of the context. + + The sequence of distributed nodes. + + + + Represents the source HTML element. + + + + + Gets or sets the URL for a media resource. Is ignored when used for + the picture element. + + + + + Gets or sets the URL of a picture element. + + + + + Gets or sets the sizes if used in conjunction with a picture. + + + + + Gets or sets the type of the media source. + + + + + Gets or sets the intended type of the media resource. + + + + + Represents the span HTML element. + + + + + Represents a style HTML element. + + + + + Gets or sets if the style is enabled or disabled. + + + + + Gets or sets the use with one or more target media. + + + + + Gets or sets the content type of the style sheet language. + + + + + Gets or sets if the style is scoped. + + + + + Represents the caption HTML element. + + + + + Reprsents the base for td / th HTML element. + + + + + Gets or sets the number of columns spanned by cell. + + + + + Gets or sets the number of rows spanned by cell. + + + + + Gets or sets the list of id attribute values for header cells. + + + + + Gets the index of this cell in the row, starting from 0. + This index is in document tree order and not display order. + + + + + Represents the col HTML element. + + + + + Gets or sets the number of columns in a group or affected by a grouping. + + + + + Represents the td HTML element. + + + + + Represents the table HTML element. + + + + + Gets or sets the assigned caption element. + + + + + Creates a new table caption object or returns the existing one. + + A caption element. + + + + Deletes the table caption, if one exists. + + + + + Gets or sets the assigned head section. + + + + + Creates a new table header section or returns the existing one. + + A table header element. + + + + Deletes the header from the table, if one exists. + + + + + Gets or sets the assigned foot section. + + + + + Creates a table footer section or returns an existing one. + + A footer element. + + + + Deletes the footer from the table, if one exists. + + + + + Gets the assigned body sections. + + + + + Creates a new table body section. + + A body element. + + + + Gets the assigned table rows. + + + + + Inserts a new empty row in the table. The new row is inserted immediately before + and in the same section as the current indexth row in the table. If index is -1 + or equal to the number of rows, the new row is appended. In addition, when the + table is empty the row is inserted into a TBODY which is created and inserted + into the table. + + + The row number where to insert a new row. This index starts from 0 and is relative + to the logical order (not document order) of all the rows contained inside the table. + + The inserted table row. + + + + Deletes a table row. + + + The index of the row to be deleted. This index starts from 0 and is relative to the + logical order (not document order) of all the rows contained inside the table. If the + index is -1 the last row in the table is deleted. + + + + + Gets or sets the border attribute. + + + + + Represents the th HTML element. + + + + + Gets or sets the scope of the th element. + + + + + Represents the tr HTML element. + + + + + Gets the index in the logical order and not in document order. + + + + + Gets the index of this row, relative to the current section starting + from 0. + + + + + Gets the assigned table cells. + + + + + Insert an empty TD or TH cell into this row. If index is -1 or equal to + the number of cells, the new cell is appended. + + + [Optional] The place to insert the cell, starting from 0. A negative + value indicates that the cell should be appended to the row. + + + [Optional] The kind of table cell to insert. + + The inserted table cell. + + + + Deletes a cell from the current row. + + + The index of the cell to delete, starting from 0. If the index is + -1 the last cell in the row is deleted. + + The current row. + + + + Represent the base of table section (tbody, thead, tfoot) elements. + + + + + Gets the assigned table rows. + + + + + Inserts a row into this section. The new row is inserted immediately before the + current indexth row in this section. If index is -1 or equal to the number of + rows in this section, the new row is appended. + + + The row number where to insert a new row. This index starts from 0 and is relative + only to the rows contained inside this section, not all the rows in the table. + + The inserted table row. + + + + Deletes a row from this section. + + + The index of the row to be deleted, or -1 to delete the last row. + This index starts from 0 and is relative only to the rows contained + inside this section, not all the rows in the table. + + + + + Represents the template HTML element. + + + + + Gets the template's content for cloning. + + + + + Represents the textarea HTML element. + + + + + Gets or sets the autofocus HTML attribute, which indicates whether the + control should have input focus when the page loads. + + + + + Gets or sets if the textarea is enabled or disabled. + + + + + Gets the associated HTML form element. + + + + + Gets the list of assigned labels. + + + + + Gets or sets the name of the element. + + + + + Gets the type (textarea). + + + + + Gets or sets if the field is required. + + + + + Gets or sets if the field is read-only. + + + + + Gets or sets the default value. + + + + + Gets or sets the value. + + + + + Gets or sets the wrap HTML attribute, indicating how the control wraps text. + + + + + Gets the codepoint length of the control's value. + + + + + Gets or sets the rows HTML attribute, indicating + the number of visible text lines for the control. + + + + + Gets or sets the cols HTML attribute, indicating + the visible width of the text area. + + + + + Gets or sets the maxlength HTML attribute, indicating + the maximum number of characters the user can enter. + This constraint is evaluated only when the value changes. + + + + + Gets or sets the placeholder HTML attribute, containing a hint to + the user about what to enter in the control. + + + + + Gets the direction in which selection occurred. This is "forward" if + selection was performed in the start-to-end direction of the current + locale, or "backward" for the opposite direction. + + + + + Gets or sets the directionality of the form element. + + + + + Gets or sets the index of the beginning of selected text. + If no text is selected, contains the index of the character + that follows the input cursor. On being set, the control behaves + as if setSelectionRange() had been called with this as the first + argument, and selectionEnd as the second argument. + + + + + Gets or sets the index of the end of selected text. If no text + is selected, contains the index of the character that follows + the input cursor. On being set, the control behaves as if + setSelectionRange() had been called with this as the second + argument, and selectionStart as the first argument. + + + + + Selects the contents of the textarea. + + + + + Selects a range of text, and sets selectionStart and selectionEnd. + If either argument is greater than the length of the value, it is treated + as pointing to the end of the value. If end is less than start, then + both are treated as the value of end. + + The start of the selection. + The end of the selection. + Optional: The direction of the selection. + + + + Represents the time HTML element. + + + + + Gets or sets the time. + + + + + Represents the title HTML element. + + + + + Gets or sets the text of the title. + + + + + Represents the track HTML element. + + + + + Gets or sets the kind of the track. + + + + + Gets or sets the media source. + + + + + Gets or sets the language of the source. + + + + + Gets or sets the label text. + + + + + Gets or sets if given track is the default track. + + + + + Gets the ready state of the given track. + + + + + Gets the associated text track. + + + + + Represents an unknown HTML element. + + + + + Represents an ul HTML element. + + + + + Represents the video HTML element. + + + + + Gets or sets the displayed width of the video element. + + + + + Gets or sets the displayed height of the video element. + + + + + Gets the width of the video. + + + + + Gets the height of the video. + + + + + Gets or sets the URL to a preview image. + + + + + This interface marks elements that allow to have an attached label. + + + + + Gets the list of assigned labels. + + + + + Useful extension methods for the HtmlImageElement. + + + + + Gathers the source elements for the provided image element. + + The image to extend. + The stack of source elements. + + + + The list of possible horizontal alignments. + + + + + The bottom of the object should be vertically aligned with + the current baseline. This is the default value. + + + + + The center of the object should be vertically aligned with + the current baseline. + + + + + The top of the object should be vertically aligned with the + top of the current text line. + + + + + Float to the current left margin. + + + + + Float to the current right margin. + + + + + The address HTML element. + + + + + Represents an anchor element. + + + + + Creates a new anchor element. + + + + + Gets or sets the character encoding for the target resource. + + + + + Gets or sets the anchor name. + + + + + Gets or sets the text of the anchor tag (same as TextContent). + + + + + Represents the HTML applet element. + + + + + Represents the area element. + + + + + Creates a new area element. + + + + + Gets or sets the alternative text for the element. + + + + + Gets or sets the coordinates to define the hot-spot region. + + + + + Gets or sets the shape of the hot-spot, limited to known values. + The known values are: circle, default. poly, rect. The missing + value is rect. + + + + + Represents the HTML audio element. + + + + + Creates a new HTML audio element. + + + + + Represents the HTML base element. + + + + + Represents an HTML basefont element. + Deprecated in HTML 4.01. + + + + + Represents the HTML bgsound element. + + + + + The big HTML element. + + + + + Represents the HTML body element. + + + + + The bold HTML element. + + + + + Represents the HTML br element. + + + + + Represents an HTML button element. + + + + + Creates a new HTML button element. + + + + + Gets or sets the behavior of the button. + + + + + Gets or sets the URI of a resource that processes information submitted by the button. + If specified, this attribute overrides the action attribute of the form element that owns this element. + + + + + Gets or sets the type of content that is used to submit the form to the server. If specified, this + attribute overrides the enctype attribute of the form element that owns this element. + + + + + Gets or sets the HTTP method that the browser uses to submit the form. If specified, this attribute + overrides the method attribute of the form element that owns this element. + + + + + Gets or sets that the form is not to be validated when it is submitted. If specified, this attribute + overrides the enctype attribute of the form element that owns this element. + + + + + Gets or sets A name or keyword indicating where to display the response that is received after submitting + the form. If specified, this attribute overrides the target attribute of the form element that owns this element. + + + + + Gets or sets the current value of the control. + + + + + Gets or sets if the link has been visited. + + + + + Gets or sets if the link is currently active. + + + + + Represents the HTML canvas element. + See: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html + Alternative: http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#the-canvas-element + + + + + Creates a new HTML canvas element. + + + + + Gets or sets the displayed width of the canvas element. + + + + + Gets or sets the displayed height of the canvas element. + + + + + Gets the drawing context. + + A context id like 2d. + An object that defines the drawing context. + + + + Gets an indicator if a context with the given parameters could be created. + + A context id like 2d. + True if the context is supported, otherwise false. + + + + Changes the context the element is related to the given one. + + The new context. + + + + Returns a Data URI with the bitmap data of the context. + + The type of image e.g image/png. + A data URI with the data if any. + + + + Creates a BLOB out of the canvas pixel data and passes it + to the given callback. + + The callback function. + The type of object to create. + + + + The code HTML element. + + + + + Represents the HTML data element. + + + + + Represents the HTML datalist element. + + + + + Represents the HTML dl element. + + + + + Represents the HTML details element. + + + + + Represents the object for HTML dialog elements. + + + + + Represents the HTML dir element. + This element is obsolete since HTML 4.01. + + + + + Represents the HTML div element. + + + + + Represents a document node that contains only HTML nodes. + + + + + Represents a standard HTML element in the node tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the embed element. + + + + + The em HTML element. + + + + + Represents the HTML fieldset element. + + + + + Represents a font element. + See (19) obsolete features of [WHATWG]. + + + + + Represents the base class for all HTML form control elements. + + + + + Represents the base class for all HTML form controls that contain a state. + + + + + Gets the status if the element can contain a range endpoint. + + + + + Gets the status if the element should save and restore the control state. + + + + + Saves the current control's state. + + The current state. + + + + Resets the form control state to the given state. + + The desired state. + + + + Represents the form element. + + + + + More information can be found at: + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-data-post + + + + + More information can be found at: + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-mailto-headers + + + + + More information can be found at: + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-mailto-body + + + + + More information can be found at: + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-get-action + + + + + Submits the body of the form. + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-body + + + + + More information can be found at: + http://www.w3.org/html/wg/drafts/html/master/forms.html#submit-mutate-action + + + + + Represents the HTML frame element. + + + + + Represents the base class for frame elements. + + + + + Represents the base class for frame owned elements. + + + + + Represents the HTML frameset element. + Obsolete since HTML 4.01. + + + + + Represents the HTML head element. + + + + + Represents the an HTML heading element (h1, h2, h3, h4, h5, h6). + + + + + Represents the hr element. + + + + + Represents the HTML html element. + + + + + Represents the HTML iframe element. + + + + + Represents the image element. + + + + + Represents an HTML input element. + + + + + Represents the HTML isindex element. + + + + + The i HTML element. + + + + + Represents the keygen element. + + + + + Creates a new HTML keygen element. + + + + + Gets or sets the challenge attribute. + + + + + Gets or sets the type of key used. + + + + + Gets the type of input control (keygen). + + + + + Represents the HTML label element. + + + + + Gets the control that the label is assigned for if any. + + + + + Gets or sets the ID of the labeled control. Reflects the for attribute. + + + + + Gets the form element that the label is assigned for if any. + + + + + Represents the HTML legend element. + + + + + Gets the associated form. + + + + + Represents the HTML link element. + + + + + Defines a set of extension methods for link elements. + + + + + Gets if the link contains a stylesheet that is regarded persistent. + + The link to examine. + True if the link hosts a persistent stylesheet. + + + + Gets if the link contains a stylesheet that is regarded preferred. + + The link to examine. + True if the link hosts a preferred stylesheet. + + + + Gets if the link contains a stylesheet that is regarded alternate. + + The link to examine. + True if the link hosts an alternate stylesheet. + + + + Represents an HTML li, dd or dt tag. + + + + + Creates a new item tag. + + + + + Represents the HTML map element. + + + + + Gets or sets the value of the href attribute. + + + + + Gets a collection representing the area elements + associated to this map. + + + + + Gets a collection representing the img and object + elements associated to this element. + + + + + Represents the HTML marquee element. + + + + + Gets the minimum delay in ms. + + + + + Gets or sets the amount of scrolling in pixels. + + + + + Gets or sets the delay of scrolling in ms. + + + + + Gets or sets the loop number. + + + + + Starts the marquee loop. + + + + + Stops the marquee loop. + + + + + Represents the abstract base for HTML media (audio / video) elements. + + + + + Represents the HTML menu element. + + + + + Creates a new HTML menu element. + + + + + Gets or sets the type of the menu element. + + + + + Gets or sets the text label of the menu element. + + + + + Represents the HTML menuitem element. + + + + + Creates a new HTML menuitem element. + + + + + Gets or sets if the link has been visited. + + + + + Gets or sets if the link is currently active. + + + + + Gets the assigned master command, if any. + + + + + Gets or sets the type of command. + + + + + Gets or sets the user-visible label. + + + + + Gets or sets the icon for the command. + + + + + Gets or sets if the menuitem element is enabled or disabled. + + + + + Gets or sets if the menuitem element is checked or not. + + + + + Gets or sets if the menuitem element is the default command. + + + + + Gets or sets the name of group of commands to + treat as a radio button group. + + + + + Represents the HTML meta element. + + + + + Represents the HTML meter element. + https://html.spec.whatwg.org/multipage/forms.html#dom-meter-low + + + + + Represents the HTML modifier (ins / del) element. + + + + + Gets or sets the value that contains a URI of a resource + explaining the change. + + + + + Gets or sets the value that contains date-and-time string + representing a timestamp for the change. + + + + + Represents a noembed HTML element. + + + + + Represents a noframes HTML element. + + + + + The nobr HTML element. + + + + + Represents a noscript HTML element. + + + + + Represents the HTML object element. + + + + + Represents the HTML option element. + + + + + Represents the HTML optgroup element. + + + + + Represents the HTML ordered list (ol) element. + + + + + Gets or sets if the order is reversed. + + + + + Gets or sets the start of the numbering. + + + + + Gets or sets a value within [ 1, a, A, i, I ]. + + + + + Represents an HTML output element. + + + + + Represents the HTML paragraph element. + + + + + Represents a param element. + + + + + Represents the HTML picture element. + + + + + The plaintext HTML element. + + + + + Represents the HTML pre element. + + + + + Represents the HTML progress element. + https://html.spec.whatwg.org/multipage/forms.html#the-progress-element + + + + + Rperesents the HTML quote element. + + + + + Gets or sets the citation. + + + + + The rb HTML element. + + + + + The rp HTML element. + + + + + The rtc HTML element. + + + + + The rt element. + + + + + The ruby HTML element. + + + + + Represents an HTML script element. + http://www.w3.org/TR/html5/scripting-1.html#execute-the-script-block + + + + + More information available at: + http://www.w3.org/TR/html5/scripting-1.html#prepare-a-script + + + + + Represents the select element. + + + + + Represents an HTML element with only semantic meaning. + + + + + Represents an HTML slot element. + + + + + The small HTML element. + + + + + Represents the HTML source element. + + + + + Represents the HTML span element. + + + + + The strike HTML element. + + + + + The strong HTML element. + + + + + The s HTML element. + + + + + Represents the HTML style element. + + + + + Represents the HTML caption element. + + + + + Gets or sets the value of the alignment attribute. + + + + + Represents the object for HTML table cell elements. + + + + + Represents the HTML column element. + + + + + Gets or sets the value of the horizontal alignment attribute. + + + + + Gets or sets the number of columns in a group or affected by a grouping. + + + + + Gets or sets the value of the vertical alignment attribute. + + + + + Gets or sets the value of the width attribute. + + + + + Represents the HTML column group element. + + + + + Gets or sets the value of the horizontal alignment attribute. + + + + + Gets or sets the number of columns in a group or affected by a grouping. + + + + + Gets or sets the value of the vertical alignment attribute. + + + + + Gets or sets the value of the width attribute. + + + + + Represents the object for HTML td elements. + + + + + Represents the HTML table element. + + + + + Represents the object for HTML th elements. + + + + + Represents the HTML tr element. + + + + + Represents the object for HTML table section (thead / tbody / tfoot) elements. + + + + + The tt HTML element. + + + + + Represents the template element. + + + + + Represents a HTML textarea element. + + + + + Creates a new HTML textarea element. + + + + + Gets or sets the wrap HTML attribute, indicating how the control wraps text. + + + + + Gets or sets the default value of the input field. + + + + + Gets the codepoint length of the control's value. + + + + + Gets or sets the rows HTML attribute, indicating + the number of visible text lines for the control. + + + + + Gets or sets the cols HTML attribute, indicating + the visible width of the text area. + + + + + Gets the type of input control (texarea). + + + + + Represents the base class for all HTML text form controls. + + + + + Gets or sets if the value has been modified. + + + + + Gets or sets the dirname HTML attribute. + + + + + Gets or sets the maxlength HTML attribute, indicating + the maximum number of characters the user can enter. + This constraint is evaluated only when the value changes. + + + + + Gets or sets the minlength HTML attribute, indicating + the minimum number of characters the user can enter. + This constraint is evaluated only when the value changes. + + + + + Gets or sets the default value of the input field. + + + + + Gets if the input field has a value (via attribute or directly). + + + + + Gets or sets the current value in the control. + + + + + Gets or sets the placeholder HTML attribute, containing a hint to + the user about what to enter in the control. + + + + + Gets or sets if the field is required. + + + + + Gets or sets if the textarea field is read-only. + + + + + Gets or sets the index of the beginning of selected text. + If no text is selected, contains the index of the character + that follows the input cursor. On being set, the control behaves + as if setSelectionRange() had been called with this as the first + argument, and selectionEnd as the second argument. + + + + + Gets or sets the index of the end of selected text. If no text + is selected, contains the index of the character that follows + the input cursor. On being set, the control behaves as if + setSelectionRange() had been called with this as the second + argument, and selectionStart as the first argument. + + + + + Gets the direction in which selection occurred. This + is "forward" if selection was performed in the start-to-end + direction of the current locale, or "backward" for the opposite + direction. + + + + + Selects a range of text, and sets selectionStart and selectionEnd. + If either argument is greater than the length of the value, it is treated + as pointing to the end of the value. If end is less than start, then + both are treated as the value of end. + + The start of the selection. + The end of the selection. + Optional: The direction of the selection. + + + + Selects the contents of the control. + + + + + An enumeration with possible selection directions. + + + + + The text selection direction is unknown. + + + + + The text is selected in forward direction. + + + + + The text is selected in backward direction. + + + + + Resets the form control to its initial value. + + + + + The time HTML element. + + + + + Represents the title element. + + + + + Creates a new HTML title element. + + + + + Gets or sets the text of the title. + + + + + Represents the HTML track element. + + + + + Creates a new HTML track element. + + + + + Gets or sets the kind of the track. + + + + + Gets or sets the media source. + + + + + Gets or sets the language of the source. + + + + + Gets or sets the label text. + + + + + Gets or sets if given track is the default track. + + + + + Gets the ready state of the given track. + + + + + The u HTML element. + + + + + The class for an unknown HTML element. + + + + + The DOM Object representing the unordered list. + + + + + Represents the base for a / area elements. + + + + + Represents the HTML video element. + + + + + Represents the HTML wbr (word-break-opportunity) element. + This element is used to indicate that the position is a good + point for inserting a possible line-break. + + + + + The xmp HTML element. + + + + + A class for representing the current validity state. + + + + + Creates a new ValidityState instance. + + + + + Gets or sets if a required value is missing. + + + + + Gets or sets if the given type is wrong. + + + + + Gets or sets if the input does not match a given pattern. + + + + + Gets or sets if the input is regarded as invalid. + + + + + Gets or sets if the input is too long. + + + + + Gets or sets if the input is too short. + + + + + Gets or sets if the range is too small. + + + + + Gets or sets if the range is too big. + + + + + Gets or sets if the new value is invalid. + + + + + Gets or sets if validation failed due to a custom error. + + + + + Gets if the value is valid. + + + + + Implemented by elements that can be validated. + + + + + Gets a value if the current element validates. + + + + + Gets the current validation state of the current element. + + + + + Gets the current validation message. + + + + + Checks the validity of the current element. + + True if the object is valid, otherwise false. + + + + Sets a custom validation error. If this is not the empty string, + then the element is suffering from a custom validation error. + + The error message to use. + + + + The ValidityState interface represents the validity states that an element + can be in, with respect to constraint validation. Together, they help explain + why an element's value fails to validate, if it's not valid. + + + + + Gets if the element has a required attribute, but no value. + + + + + Gets if the value is not in the required syntax (when type is email or url). + + + + + Gets if the value does not match the specified pattern. + + + + + Gets if the value exceeds the specified maxlength. + + + + + Gets if the value is below the specified minlength. + + + + + Gets if the value is regarded is invalid input. + + + + + Gets if the value is less than the minimum specified by the min attribute. + + + + + Gets if the value is greater than the maximum specified by the max attribute. + + + + + Gets if the value does not fit the rules determined by the step attribute + (that is, it's not evenly divisible by the step value). + + + + + Gets the element's custom validity message. + + + + + Gets if the element meets all constraint validations, and is therefore + considered to be valid. + + + + + Represents kinds of table cells. + + + + + Td table cell. + + + + + Th table cell. + + + + + The list of possible table frame directives. + + + + + No sides. This is the default value. + + + + + All four sides. + + + + + The top side only. + + + + + The bottom side only. + + + + + The top and bottom sides only. + + + + + The right and left sides only. + + + + + The left-hand side only. + + + + + The right-hand side only. + + + + + All four sides. + + + + + The list of possible table rules. + + + + + No rules. This is the default value. + + + + + Rules will appear between rows only. + + + + + Rules will appear between columns only. + + + + + Rules will appear between row groups and column groups only. + + + + + Rules will appear between all rows and columns. + + + + + An enumeration with track ready state values. + + + + + Not initialized yet. + + + + + Currently loading. + + + + + Loading finished. + + + + + An error occured. + + + + + A set of flags for an event. + + + + + No flags are set. + + + + + Stop propagation has been requested. + + + + + Stop immediate propagation has been requested. + + + + + The event has been cancelled. + + + + + The event has been initialized. + + + + + The event has been dispatched. + + + + + Class to store the state of a form control. + + + + + Creates a new form control state instance. + + The name of the field. + The type of the field. + The value of the field. + + + + Gets the name of the field. + + + + + Gets the field's value. + + + + + Gets the type of the field. + + + + + Bundles information stored in HTML forms. + + + + + Creates a new form data set with a randomly generated boundary. + + + + + Gets the chosen boundary. + + + + + Applies the multipart/form-data algorithm. + http://www.w3.org/html/wg/drafts/html/master/forms.html#multipart/form-data-encoding-algorithm + + (Optional) Explicit encoding. + A stream containing the body. + + + + Applies the urlencoded algorithm. + http://www.w3.org/html/wg/drafts/html/master/forms.html#application/x-www-form-urlencoded-encoding-algorithm + + (Optional) Explicit encoding. + A stream containing the body. + + + + Applies the plain encoding algorithm. + http://www.w3.org/html/wg/drafts/html/master/forms.html#text/plain-encoding-algorithm + + (Optional) Explicit encoding. + A stream containing the body. + + + + Applies the application json encoding algorithm. + https://darobin.github.io/formic/specs/json/#the-application-json-encoding-algorithm + + A stream containing the body. + + + + Applies the given submitter to serialize the form data set. + + The algorithm to use. + (Optional) Explicit encoding. + A stream containing the body. + + + + Appends a text entry to the form data set. + + The name of the entry. + The value of the entry. + The type of the entry. + + + + Appends a file entry to the form data set. + + The name of the entry. + The value of the entry. + The type of the entry. + + + + Gets an enumerator over all entry names. + + The enumerator. + + + + The collection of (known / used) form method names. + + + + + The get method. + + + + + The post method. + + + + + The dialog method. + + + + + A file entry in a form. + + + + + Encapsulates the data contained in an entry. + + + + + Creates a new form data set entry. + + The name of the field. + The type of the field. + + + + Gets if the name has been given. + + + + + Gets the entry's name. + + + + + Gets the entry's type. + + + + + Accepts the provided visitor instance. + + The visitor to accept. + + + + Checks if the provided boundary is already mentioned in the content. + + The string to check for. + The encoding to use for the string. + True if the boundary is matched, otherwise false. + + + + Defines the visitor for form data set entries. + + + + + Called by text form data set entries. + + The entry to pass. + The contained text value. + + + + Called by file form data set entries. + + The entry to pass. + The name of the file. + The MIME-type. + The contained content. + + + + Strategy for serializing form data sets. + + + + + Serializes the visited form data set to the stream. + + The stream writer to use. + + + + A text entry in a form. + + + + + Provides string to HTMLElement instance creation mappings. + + + + + Returns a specialized HTMLElement instance for the given tag name. + + The document that owns the element. + The given tag name. + The prefix of the element, if any. + The optional flags, if any. + The specialized HTMLElement instance. + + + + Represents the list of all Html entities. + + + + + Gets the instance to resolve entities. + + + + + Gets a symbol (that ended with a semicolon) specified by its entity + name. + + + The name of the entity, specified by &NAME; in the Html code. + + The string with the symbol or null. + + + + Converts a given number into its unicode character. + + The code to convert. + The array containing the character. + + + + Converts a set of two numbers into their unicode characters. + + The first (leading) character code. + The second (trailing) character code. + The array containing the two characters. + + + + Determines if the code is an invalid number. + + The code to examine. + True if it is an invalid number, false otherwise. + + + + Determines if the given code is actually in the table of common + redirections. + + The code to examine. + True if the code is in the table, else false. + + + + Gets the symbol mapped by the table of common redirections. + + The original code. + The character wrapped in a string. + + + + Determines if the code is within an invalid range. + + The code to examine. + + True if it is within an invalid range, false otherwise. + + + + + Represents the standard HTML5 markup formatter. + + + + + An instance of the HtmlMarkupFormatter. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates the string representation of the attribute. + + The attribute to serialize. + The string representation. + + + + Escapes the given text by replacing special characters with their + HTML entity (amp, nobsp, lt, and gt). + + The string to alter. + The altered string. + + + + Gets the doctype identifiers from the given public and system identifier. + + The public identifier. + The system identifier. + The combined string representation. + + + + Gets the local name using the XML namespace prefix if required. + + The name to be properly represented. + The string representation. + + + + Represents the interface for producing input validation. + + + + + Creates an input type for the input element. + + The input element. + The name of the type. + The new instance of the type or text. + + + + Represents the factory for resolving link relation. + + + + + Creates an link relation provider for the given element. + + The link element. + The current value of the rel attribute. + The provider instance or null. + + + + The collection of (known / used) input type names. + + + + + The input will be hidden. + + + + + A standard (1-line) text input. + + + + + A search input. + + + + + A telephone number input. + + + + + An URL input field. + + + + + An email input field. + + + + + A password input field. + + + + + A datetime input field. + + + + + A datetime-local input field. + + + + + A date input field. + + + + + A month picker input field. + + + + + A week picker input field. + + + + + A time picker input field. + + + + + A number input field. + + + + + A range picker. + + + + + A color picker input field. + + + + + A checkbox. + + + + + A radio box. + + + + + A file upload box. + + + + + A submit button. + + + + + An image input box. + + + + + A reset form button. + + + + + A simple button. + + + + + A select-multiple select box. + + + + + A select-one select box. + + + + + Base type for the all input field types. Primarely from: + http://www.w3.org/TR/html5/forms.html#range-state-(type=range) + + + + + The start of the unix epoch (1st of January 1970). + + + + + Simple regular expression for floating point numbers. + + + + + Creates a new base input type. + + + + + Gets the name of the input type. + + + + + Gets if the input type can be validated. + + + + + Gets the associated input element. + + + + + Checks if the given type wants to append data. + + + + + Checks the current input for its validity. + + + + + Tries to convert the given string to a number. + + + + + Tries to convert the given number to a string. + + + + + Tries to convert the given string to a date time. + + + + + Tries to convert the given date time to a string. + + + + + Populates the form data set with the current input. + + + + + Changes the value by n steps. + + + + + Checks if the current value does not match the steps. + + + + + Gets the current step size. + + + + + Gets the default step offset. + + + + + Gets the default step size. + + + + + Gets the step scaling factor. + + + + + Converts the given validity state to a validation error enum. + + + + + Validates the time using the given parameters. + + + + + Checks if the string does not follow the pattern. + + + + + Tries to convert the value to a number using the default expression. + + + + + Tries to convert the value to a time starting at the given position. + + + + + Tries to convert the value to a week. + + + + + Checks if the given value is a legal hour. + + + + + Checks if the given value is a legal second. + + + + + Checks if the given value is a legal minute. + + + + + Checks if the given value is a legal month. + + + + + Checks if the given value is a legal year. + + + + + Checks if the given values form a legal date. + + + + + Checks if the given values form a legal week. + + + + + Checks if the given character is a valid time separator. + + + + + Skips all legit digits while returning the final position. + + + + + Checks the assumption that the string continues with a date time. + + + + + The collection of (known / used) link rel names. + + + + + The stylesheet relation. + + + + + The import relation. + + + + + The author relation. + + + + + The prefetch relation. + + + + + The icon relation. + + + + + The prev relation. + + + + + The next relation. + + + + + The license relation. + + + + + The alternate relation. + + + + + The search relation. + + + + + The pingback relation. + + + + + The sidebar relation. + + + + + Base type for the all link rel field types. + + + + + Creates a new instance of the relation processor. + + + + + Gets the assigned request processor. + + + + + Gets the associated link element. + + + + + Gets the currently used URL. + + + + + Starts loading the associated resource(s) asynchronously. + + + + + + See http://www.w3.org/TR/html-imports/#dfn-import-request. + + + + + Represents the an HTML5 markup formatter with a normalization scheme. + + + + + Gets or sets the tags that should have preserved white-space. + + + + + Gets or sets if the automatically inserted standard elements + (html, head, body) should be kept despite adding no value. + + + + + Gets or sets if comments should be preserved. + + + + + Gets or sets if quotes of an attribute should be kept despite + not needing them. + + + + + Gets or sets if empty (zero-length) attributes should be kept. + + + + + Gets or sets if implied end tags (e.g., "/li") should be preserved. + + + + + + + + + + + + + + + + + Represents the Tree construction as specified in + 8.2.5 Tree construction, on the following page: + http://www.w3.org/html/wg/drafts/html/master/syntax.html + + + + + Creates a new instance of the HTML parser with the specified + document based on the given source manager. + + + The document instance to be constructed. + + + + + Gets if the tree builder has been created for parsing fragments. + + + + + Gets the adjusted current node. + + + + + Gets the current node. + + + + + Parses the given source asynchronously and creates the document. + + The options to use for parsing. + The cancellation token to use. + + + + Parses the given source and creates the document. + + The options to use for parsing. + + + + Switches to the fragment algorithm with the specified context + element. Then parses the given source and creates the document. + + The options to use for parsing. + + The context element where the algorithm is applied to. + + + + + Restarts the parser by resetting the internal state. + + + + + Resets the current insertation mode to the rules according to the + algorithm specified in 8.2.3.1 The insertion mode. + http://www.w3.org/html/wg/drafts/html/master/syntax.html#the-insertion-mode + + + + + Consumes a token and processes it. + + The token to consume. + + + + Takes the method corresponding to the current insertation mode. + + The token to insert / use. + + + + See 8.2.5.4.1 The "initial" insertion mode. + + The passed token. + + + + See 8.2.5.4.2 The "before html" insertion mode. + + The passed token. + + + + See 8.2.5.4.3 The "before head" insertion mode. + + The passed token. + + + + See 8.2.5.4.4 The "in head" insertion mode. + + The passed token. + + + + See 8.2.5.4.5 The "in head noscript" insertion mode. + + The passed token. + + + + See 8.2.5.4.6 The "after head" insertion mode. + + The passed token. + + + + See 8.2.5.4.7 The "in body" insertion mode. + + The passed token. + + + + See 8.2.5.4.8 The "text" insertion mode. + + The passed token. + + + + See 8.2.5.4.9 The "in table" insertion mode. + + The passed token. + + + + See 8.2.5.4.10 The "in table text" insertion mode. + + The passed token. + + + + See 8.2.5.4.11 The "in caption" insertion mode. + + The passed token. + + + + See 8.2.5.4.12 The "in column group" insertion mode. + + The passed token. + + + + See 8.2.5.4.13 The "in table body" insertion mode. + + The passed token. + + + + See 8.2.5.4.14 The "in row" insertion mode. + + The passed token. + + + + See 8.2.5.4.15 The "in cell" insertion mode. + + The passed token. + + + + See 8.2.5.4.16 The "in select" insertion mode. + + The passed token. + + + + See 8.2.5.4.17 The "in select in table" insertion mode. + + The passed token. + + + + See 8.2.5.4.18 The "in template" insertion mode. + + The passed token. + + + + See 8.2.5.4.19 The "after body" insertion mode. + + The passed token. + + + + See 8.2.5.4.20 The "in frameset" insertion mode. + + The passed token. + + + + See 8.2.5.4.21 The "after frameset" insertion mode. + + The passed token. + + + + See 8.2.5.4.22 The "after after body" insertion mode. + + The passed token. + + + + See 8.2.5.4.23 The "after after frameset" insertion mode. + + The passed token. + + + + Inserting something in the template. + + The token to insert. + The mode to push. + + + + Closes the template element. + + + + + Closes the table if the section is in table scope. + + The tag to insert (closes table). + + + + Acts if a option end tag had been seen in the InSelect state. + + The actual tag token. + + + + Acts if a optgroup end tag had been seen in the InSelect state. + + The actual tag token. + + + + Act as if an colgroup end tag has been found in the InColumnGroup state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + Act as if a body start tag has been found in the AfterHead state. + + The actual tag token. + + + + Follows the generic rawtext parsing algorithm. + + The given tag token. + + + + Follows the generic RCData parsing algorithm. + + The given tag token. + + + + Acts if a li tag in the InBody state has been found. + + The actual tag given. + + + + Acts if a dd or dt tag in the InBody state has been found. + + The actual tag given. + + + + Acts if a block (button) end tag had been seen in the InBody state. + + The actual tag given. + True if the token was not ignored, otherwise false. + + + + Acts if a nobr tag had been seen in the InBody state. + + The actual tag given. + + + + Copies the element and its attributes to create a new element. + + The old element (source). + The new element (target). + + + + Performs the InBody state with foster parenting. + + The given token. + + + + Act as if an anything else tag has been found in the InBody state. + + The actual tag found. + + + + Act as if an body end tag has been found in the InBody state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + Act as if an br start tag has been found in the InBody state. + + The actual tag found. + + + + Act as if an p end tag has been found in the InBody state. + + The actual tag token. + True if the token was found, otherwise false. + + + + Act as if an table end tag has been found in the InTable state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + Act as if an tr end tag has been found in the InRow state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + Act as if an select end tag has been found in the InSelect state. + + True if the token was not ignored, otherwise false. + + + + Act as if an caption end tag has been found in the InCaption state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + Act as if an td or th end tag has been found in the InCell state. + + The actual tag token. + True if the token was not ignored, otherwise false. + + + + 8.2.5.5 The rules for parsing tokens in foreign content + + The token to examine. + + + + Processes a special start tag token. + + The tag token to process. + + + + Creates a foreign element from the given html tag. + + The tag of the foreign element. + The element or NULL if it is no MathML or SVG element. + + + + Processes a normal start tag token. + + The token to process. + + + + Determines if the given tag name is in the global scope. + + The tag name to check. + True if it is in scope, otherwise false. + + + + Determines if the given type is in the global scope. + + True if it is in scope, otherwise false. + + + + Determines if the given tag name is in the list scope. + + True if it is in scope, otherwise false. + + + + Determines if a paragraph is in the button scope. + + True if it is in scope, otherwise false. + + + + Determines if the given type is in the table scope. + + True if it is in scope, otherwise false. + + + + Determines if the given tag name is in the table scope. + + The tag name to check. + True if it is in scope, otherwise false. + + + + Determines if the given tag name is in the select scope. + + The tag name to check. + True if it is in scope, otherwise false. + + + + Runs a script given by the current node. + + + + + Runs the current script element, if there is one. + + The task waiting for the document to be ready. + + + + If there is a node in the stack of open elements that is not either + a dd element, a dt element, an li element, a p element, a tbody + element, a td element, a tfoot element, a th element, a thead + element, a tr element, the body element, or the html element, then + this is a parse error. + + + + + Checks if a tag with the given name is currently open. + + The name of the tag to check for. + True if such a tag is open, otherwise false. + + + + Gets the next token and removes the starting newline, if it has one. + + + + + 8.2.6 The end. + + + + + Adds the root element (html) to the document. + + The token which started this process. + + + + Pops the last node from the stack of open nodes. + + + + + Modifies the node by appending all attributes and + acknowledging the self-closing flag if set. + + The node which will be added to the list. + The associated tag token. + Should the self-closing be acknowledged? + + + + Appends a node to the current node and + modifies the node by appending all attributes and + acknowledging the self-closing flag if set. + + The associated tag token. + Should the self-closing be acknowledged? + + + + Appends a node to the current node and + modifies the node by appending all attributes and + acknowledging the self-closing flag if set. + + The node which will be added to the list. + The associated tag token. + Should the self-closing be acknowledged? + + + + Appends a configured node to the current node. + + The node which will be added to the list. + + + + Appends a node to the appropriate foster parent. + http://www.w3.org/html/wg/drafts/html/master/syntax.html#foster-parent + + The node which will be added to the list. + + + + Inserts the given characters into the current node. + + The characters to insert. + + + + Inserts the given character into the foster parent. + + The character to insert. + + + + Clears the stack of open elements back to the given element name. + + The tag that will be the CurrentNode. + + + + Clears the stack of open elements back to any heading element. + + + + + Generates the implied end tags for the dd, dt, li, option, optgroup, p, rp, rt elements except for + the tag given. + + The tag that will be excluded. + + + + Generates the implied end tags for the dd, dt, li, option, optgroup, p, rp, rt elements. + + + + + Reconstruct the list of active formatting elements, if any. + + + + + Extensions to be used exclusively by the DOM Builder. + + + + + A collection of useful helpers when working with foreign content. + + + + + Adjusts the tag name to the correct capitalization. + + The name of adjust. + The name with the correct capitalization. + + + + Setups a new math element with the attributes from the token. + + The element to setup. + The tag token to use. + The finished element. + + + + Setups a new SVG element with the attributes from the token. + + The element to setup. + The tag token to use. + The finished element. + + + + Adds the attribute with the adjusted prefix, namespace and name. + + The element to host the attribute. + The name of the attribute. + The value of the attribute. + + + + Adjusts the attribute name to the correct capitalization. + + The name of adjust. + The name with the correct capitalization. + + + + Adjusts the attribute name to the correct capitalization. + + The name of adjust. + The name with the correct capitalization. + + + + A collection of HTML parse error codes. + + + + + Unexpected end of file detected. + + + + + NULL character replaced by repl. character. + + + + + Bogus comment. + + + + + Ambiguous open tag. + + + + + The tag has been closed unexpectedly. + + + + + The closing slash has been misplaced. + + + + + Undefined markup declaration found. + + + + + Comment ended with an exclamation mark. + + + + + Comment ended with a dash. + + + + + Comment ended with an unexpected character. + + + + + The given tag cannot be self-closed. + + + + + End tags can never be self-closed. + + + + + End tags cannot carry attributes. + + + + + No caption tag has been found within the local scope. + + + + + No select tag has been found within the local scope. + + + + + No table row has been found within the local scope. + + + + + No table has been found within the local scope. + + + + + No paragraph has been found within the local scope. + + + + + No body has been found within the local scope. + + + + + No block element has been found within the local scope. + + + + + No table cell has been found within the local scope. + + + + + No table section has been found within the local scope. + + + + + No object element has been found within the local scope. + + + + + No heading element has been found within the local scope. + + + + + No list item has been found within the local scope. + + + + + No form has been found within the local scope. + + + + + No button has been found within the local scope. + + + + + No nobr element has been found within the local scope. + + + + + No element has been found within the local scope. + + + + + Character reference found no numbers. + + + + + Character reference found no semicolon. + + + + + Character reference within an invalid range. + + + + + Character reference is an invalid number. + + + + + Character reference is an invalid code. + + + + + Character reference is not terminated by a semicolon. + + + + + Character reference in attribute contains an invalid character (=). + + + + + The specified item has not been found. + + + + + The encoding operation (either encoded or decoding) failed. + + + + + Doctype unexpected character after the name detected. + + + + + Invalid character in the public identifier detected. + + + + + Invalid character in the doctype detected. + + + + + Invalid character in the system identifier detected. + + + + + The doctype tag is misplaced and ignored. + + + + + The given doctype tag is invalid. + + + + + Doctype encountered unexpected character. + + + + + The doctype tag is missing. + + + + + The given public identifier for the notation declaration is invalid. + + + + + The given system identifier for the notation declaration is invalid. + + + + + The type declaration is missing a valid definition. + + + + + A required quantifier is missing in the provided expression. + + + + + The double quotation marks have been misplaced. + + + + + The single quotation marks have been misplaced. + + + + + The attribute's name contains an invalid character. + + + + + The attribute's value contains an invalid character. + + + + + The beginning of a new attribute has been expected. + + + + + The attribute has already been added. + + + + + The given tag must be placed in head tag. + + + + + The given tag is not appropriate for the current position. + + + + + The given tag cannot end at the current position. + + + + + The given tag cannot start at the current position. + + + + + The given form cannot be placed at the current position. + + + + + The given input cannot be placed at the current position. + + + + + The closing tag and the currently open tag do not match. + + + + + The given end tag does not match the current node. + + + + + This position does not support a linebreak (LF, FF). + + + + + The head tag can only be placed once inside the html tag. + + + + + The html tag can only be placed once as the root element. + + + + + The body tag can only be placed once inside the html tag. + + + + + The image tag has been named image instead of img. + + + + + Tables cannot be nested. + + + + + An illegal element has been detected in a table. + + + + + Select elements cannot be nested. + + + + + An illegal element has been detected in a select. + + + + + The frameset element has been misplaced. + + + + + Headings cannot be nested. + + + + + Anchor elements cannot be nested. + + + + + The given token cannot be inserted here. + + + + + The current node is not the root element. + + + + + The current node is the root element. + + + + + This tag is invalid in fragment mode. + + + + + There is already an open form. + + + + + The form has been closed wrong. + + + + + The body has been closed wrong. + + + + + An expected formatting element has not been found. + + + + + Exception that is thrown if an ill-formatted HTML document is parsed + in strict mode. + + + + + Creates a new HtmlParseException. + + The provided error code. + The associated error message. + The position in the source. + + + + + Gets the position of the error. + + + + + Gets the provided error code. + + + + + Defines the different tokenization content models. + + + + + Initial state: Parsed Character Data (characters will be parsed). + + + + + Optional state: Raw character data (characters will be parsed from a special table). + + + + + Optional state: Just plain text data (chracters will be parsed matching the given ones). + + + + + Optional state: Rawtext data (characters will not be parsed). + + + + + Optional state: Script data. + + + + + Creates an instance of the HTML parser front-end. + + + + + Fired when the HTML parser is starting. + + + + + Fired when the HTML parser is finished. + + + + + Fired when a HTML parse error is encountered. + + + + + Creates a new parser with the default options and context. + + + + + Creates a new parser with the custom options. + + The options to use. + + + + Creates a new parser with the custom context. + + The context to use. + + + + Creates a new parser with the custom options and the given context. + + The options to use. + The context to use. + + + + Gets the specified options. + + + + + Parses the string and returns the result. + + + + + Parses the string and returns the result. + + + + + Parses the stream and returns the result. + + + + + Parses the string asynchronously with option to cancel. + + + + + Parses the stream asynchronously with option to cancel. + + + + + Extensions for the IHtmlParser instances. + + + + + Parses the string asynchronously. + + + + + Parses the stream asynchronously. + + + + + Populates the given document asynchronously. + + + + + Contains a number of options for the HTML parser. + + + + + Gets or sets if the document is embedded. + + + + + Gets or sets if frames should not be supported. Once + set this will ignore frame elements and respect + noframes elements. + + + + + Gets or sets if scripting is allowed. + + + + + Gets or sets if errors should be treated as exceptions. + + + + + Gets or sets if XML processing instructions should be + parsed into DOM nodes. + + + + + Gets or sets if references to the original source document + should be kept on the elements in form of their tokens. + + + + + Gets or sets if the parsing of character references should + be avoided. + Note: With this option there is no way to determine from + AngleSharp what character references have been fully valid + vs. invalid. + + + + + Gets or sets the callback once a new element was created. + + + + + Performs the tokenization of the source code. Follows the tokenization algorithm at: + http://www.w3.org/html/wg/drafts/html/master/syntax.html + + + + + Fired in case of a parse error. + + + + + See 8.2.4 Tokenization + + The source code manager. + The entity resolver to use. + + + + Gets or sets if CDATA sections are accepted. + + + + + Gets or sets if character references should be avoided. + + + + + Gets or sets the current parse mode. + + + + + Gets or sets if strict mode is used. + + + + + Gets or sets if XML processing instructions should + be parsed into DOM nodes. + + + + + Gets the next available token. + + The next available token. + + + + See 8.2.4.1 Data state + + The next input character. + + + + See 8.2.4.7 PLAINTEXT state + + The next input character. + + + + See 8.2.4.3 RCDATA state + + The next input character. + + + + See 8.2.4.11 RCDATA less-than sign state + + The next input character. + + + + See 8.2.4.13 RCDATA end tag name state + + The next input character. + + + + See 8.2.4.5 RAWTEXT state + + The next input character. + + + + See 8.2.4.14 RAWTEXT less-than sign state + + The next input character. + + + + See 8.2.4.16 RAWTEXT end tag name state + + The next input character. + + + + See 8.2.4.68 CDATA section state + + The next input character. + + + + See 8.2.4.69 Tokenizing character references + + The next input character. + The additionally allowed character if there is one. + + + + See 8.2.4.8 Tag open state + + The next input character. + + + + See 8.2.4.9 End tag open state + + The next input character. + + + + See 8.2.4.10 Tag name state + + The current tag token. + + + + See 8.2.4.43 Self-closing start tag state + + The current tag token. + + + + See 8.2.4.45 Markup declaration open state + + The next input character. + + + + See 8.2.4.44 Bogus comment state + + The current character. + + + + See 8.2.4.46 Comment start state + + The next input character. + + + + See 8.2.4.47 Comment start dash state + + The next input character. + + + + See 8.2.4.48 Comment state + + The next input character. + + + + See 8.2.4.49 Comment end dash state + + The next input character. + + + + See 8.2.4.50 Comment end state + + The next input character. + + + + See 8.2.4.51 Comment end bang state + + The next input character. + + + + See 8.2.4.52 DOCTYPE state + + The next input character. + + + + See 8.2.4.53 Before DOCTYPE name state + + The next input character. + + + + See 8.2.4.54 DOCTYPE name state + + The current doctype token. + + + + See 8.2.4.55 After DOCTYPE name state + + The current doctype token. + + + + See 8.2.4.56 After DOCTYPE public keyword state + + The current doctype token. + + + + See 8.2.4.57 Before DOCTYPE public identifier state + + The current doctype token. + + + + See 8.2.4.58 DOCTYPE public identifier (double-quoted) state + + The current doctype token. + + + + See 8.2.4.59 DOCTYPE public identifier (single-quoted) state + + The current doctype token. + + + + See 8.2.4.60 After DOCTYPE public identifier state + + The current doctype token. + + + + See 8.2.4.61 Between DOCTYPE public and system identifiers state + + The current doctype token. + + + + See 8.2.4.62 After DOCTYPE system keyword state + + The current doctype token. + + + + See 8.2.4.63 Before DOCTYPE system identifier state + + The current doctype token. + + + + See 8.2.4.64 DOCTYPE system identifier (double-quoted) state + + The current doctype token. + + + + See 8.2.4.65 DOCTYPE system identifier (single-quoted) state + + The current doctype token. + + + + See 8.2.4.66 After DOCTYPE system identifier state + + The current doctype token. + + + + See 8.2.4.67 Bogus DOCTYPE state + + The current doctype token. + + + + An enumation of all possible tokens. + + + + + The DOCTYPE token. + + + + + The start tag token to mark open tags. + + + + + The end tag token to mark ending tags. + + + + + The comment tag to mark comments. + + + + + The character token to mark a character data. + + + + + The End-Of-File token to mark the end. + + + + + Possible insertation mode values. + + + + + Initial insertation mode. + + + + + Before the html tag insertation mode. + + + + + Before the head tag insertation mode. + + + + + Within the head tag insertation mode. + + + + + Within the head tag in a noscript section. + + + + + After the head tag insertation mode. + + + + + Within the body tag insertation mode. + + + + + Within some text area insertation mode. + + + + + Within a table tag insertation mode. + + + + + Within the table caption tag. + + + + + Within the column group tag. + + + + + Within the table body tag. + + + + + Within a table row tag. + + + + + Within a table division tag. + + + + + Within a select tag insertation mode. + + + + + Within a select tag in a table. + + + + + Within the template tag. + + + + + After the body tag. + + + + + Within the frameset tag. + + + + + After the frameset tag. + + + + + After the after the body tag. + + + + + Once we are far behind the frameset tag. + + + + + Represents the interface of an HTML parser. + + + + + Parses the string and returns the result. + + + + + Parses the stream and returns the result. + + + + + Parses the string and returns the result. + + + + + Parses the string asynchronously. + + + + + Parses the stream asynchronously. + + + + + Populates the given HTML document asynchronously. + + + + + Extensions to access the underying tokenizer. + + + + + Performs the tokenization on the given text source. + + The source of the tokenization. + The custom entity provider, if any. + The error handler to be used, if any. + A stream of consumed tokens. + + + + The token representation of an HTML tag attribute. + + + + + Creates a new attribute token using the provided information. + + The start position of the attribute's name. + The name of the attribute. + The value of the attribute. + + + + Gets the attribute's name. + + + + + Gets the attribute's value. + + + + + Gets the position of the token. + + + + + The DOCTYPE token. + + + + + Creates a new DOCTYPE token with the quirks mode set initially. + + The state of the force-quirks flag. + The token's position. + + + + Gets or sets the state of the force-quirks flag. + + + + + Gets the state of the public identifier. + + + + + Gets the state of the system identifier. + + + + + Gets or sets the value of the public identifier. + + + + + Gets or sets the value of the system identifier. + + + + + Gets if the given doctype token represents a limited quirks mode state. + + + + + Gets if the given doctype token represents a full quirks mode state. + + + + + Gets the status if the given doctype token matches one of the popular conditions. + + + + + Class for StartTagToken and EndTagToken. + + + + + Sets the default values. + + The type of the tag token. + The token's position. + + + + Creates a new HTML TagToken with the defined name. + + The type of the tag token. + The token's position. + The name of the tag. + + + + Creates a new opening HtmlTagToken for the given name. + + The name of the tag. + The new HTML tag token. + + + + Creates a new closing HtmlTagToken for the given name. + + The name of the tag. + The new HTML tag token. + + + + Gets or sets the state of the self-closing flag. + + + + + Gets the list of attributes. + + + + + Adds a new attribute to the list of attributes. The value will + be set to an empty string. + + The name of the attribute. + The starting position of the attribute. + + + + Adds a new attribute to the list of attributes. + + The name of the attribute. + The value of the attribute. + + + + Sets the value of the last added attribute. + + The value to set. + + + + Gets the value of the attribute with the given name or an empty + string if the attribute is not available. + + The name of the attribute. + The value of the attribute. + + + + The abstract base class of top-level HTML tokens. + + + + + Creates a new HTML token. + + The exact type of the token. + The token's text position. + The optional name of the token, if any. + + + + Gets if the character data contains actually a non-space character. + + True if the character data contains space character. + + + + Gets or sets the name of a tag token. + + + + + Gets if the character data is empty (null or length equal to zero). + + True if the character data is actually NULL or empty. + + + + Gets the data of the comment or character token. + + + + + Gets the position of the token. + + + + + Gets if the token can be used with IsHtmlTIP properties. + + + + + Gets if the given token is a SVG root start tag. + + + + + Gets if the token can be used with IsMathMLTIP properties. + + + + + Gets the type of the token. + + + + + Indicates that this comment token is a processing instruction. + + + + + Removes all ignorable characters from the beginning. + + The trimmed characters. + + + + Removes the a new line in the beginning, if any. + + + + + Converts the current token to a tag token. + + The tag token instance. + + + + Finds out if the current token is a start tag token with the given name. + + The name of the tag. + True if the token is indeed a start tag token with the given name, otherwise false. + + + + Represents the an HTML5 markup formatter with inserted indents. + + + + + Creates a new instance of the pretty markup formatter. + + + + + Gets or sets the indentation string. + + + + + Gets or sets the newline string. + + + + + + + + + + + + + + + + + + + + + + + Represents a useful helper for dealing with source sets. + + + + + Parses the given srcset attribute into an enumeration of candidates. + + The value of the srcset attribute. + The iterator yielding the various candidates. + + + + Gets the promising candidates from the given srcset using the provided sizes. + + The value of the srcset attribute. + The value of the sizes attribute. + An iterator of the different URLs yielding matching images. + + + + Represents a srcset image candidate. + + + + + The URL of the given image. + + + + + The descriptor of the given image. + + + + + Describes the various validation errors. + + + + + No errors. + + + + + The required value is missing. + + + + + The inferred type is not correct. + + + + + The given pattern is not matched. + + + + + The value is too long. + + + + + The value is too short. + + + + + The given value is too small. + + + + + The given value is too large. + + + + + The discrete step is not matched. + + + + + The input was classified as invalid. + + + + + A custom error appeared. + + + + + Represents the browsing context interface. + + + + + Gets the current window proxy. + + + + + Gets or sets the currently active document. + + + + + Gets the session history of the given browsing context. + + + + + Gets the sandboxing flag of the context. + + + + + Gets the parent of the current context, if any. If a parent is + available, then the current context contains only embedded + documents. + + + + + Gets the document that created the current context, if any. The + creator is the active document of the parent at the time of + creation. + + + + + Gets the original services for the browsing context. + + + + + Gets an instance of the given service. + + The type of service to resolve. + The instance of the service or null. + + + + Gets all registered instances of the given service. + + The type of service to resolve. + An enumerable with all service instances. + + + + Creates a new browsing context with the given name, instructed by + the specified document. + + The name of the new context. + The sandboxing flag to use. + The created browsing context. + + + + Tries to find a browsing context with the given name. + + The name of the context. + A context with the name, otherwise null. + + + + Represents the interface for a general setup of AngleSharp + or a particular AngleSharp request. + + + + + Gets an enumeration over the available services. + + + + + Allows basic serialization. + + + + + Writes the serialization of the node guided by the formatter. + + The output target of the serialization. + The formatter to use. + + + + Basic interface for HTML node serialization. + + + + + Formats the given text. + + The text to sanatize. + The formatted text. + + + + Emits the text literally. + + The text to return. + The contained text. + + + + Formats the given comment. + + The comment to stringify. + The formatted comment. + + + + Formats the given processing instruction using the target and the + data. + + + The processing instruction to stringify. + + The formatted processing instruction. + + + + Formats the given doctype using the name, public and system + identifiers. + + The document type to stringify. + The formatted doctype. + + + + Formats opening a tag with the given name. + + The element to open. + + Is the element actually self-closing? + + The formatted opening tag. + + + + Formats closing a tag with the given name. + + The element to close. + + Is the element actually self-closing? + + The formatted closing tag. + + + + Represents the base class for all loaders. + + + + + Creates a new resource loader. + + The context to use. + The optional request filter to use. + + + + Gets the maximum number of redirects. By default this is 50. + + + + + Adds the download to the active downloads. + + The download to add. + + + + Removes the download from the active downloads. + + The download to remove. + + + + Gets the cookie string for the given URL. + + The requested URL. + The associated cookie string, if any. + + + + Sets the cookie string for the given URL. + + The requested URL. + The value of the cookie. + + + + Starts downloading the request. + + The request data. + The request's originator. + The active download. + + + + Gets the active downloads. + + The enumerable over all active downloads. + + + + Loads the given URI by using an asynchronous request. + + The data of the request to send. + The cancellation token to use.. + + The task which will eventually return the response. + + + + + Creates a new request based on the existing request and given response. + + The previous request. + The response to the previous request. + The new request to issue. + + + + Represents a useful abstraction for requesters. + + + + + Fired when a request is starting. + + + + + Fired when a request is finished. + + + + + Performs an asynchronous request that can be cancelled. + + The options to consider. + The token for cancelling the task. + + The task that will eventually give the response data. + + + + + Checks if the given protocol is supported. + + + The protocol to check for, e.g. http. + + + True if the protocol is supported, otherwise false. + + + + + Performs the actual request asynchronously. + + The options to consider. + The token for cancelling the task. + The task resulting in the response. + + + + Represents the arguments to perform a fetch with CORS. + + + + + Creates a new CORS enabled request. + + The original request. + + + + Gets the original request to perform. + + + + + Gets or sets the CORS settings to use. + + + + + Gets or sets the behavior in case of no CORS. + + + + + Gets or sets the integrity provider, if any. + + + + + CORS settings attributes (see 2.6.6). + + + + + The default (missing) value. + + + + + Cross-origin CORS requests for the element will have the omit + credentials flag set. + + + + + Cross-origin CORS requests for the element will not have the omit + credentials flag set + + + + + Represents the default document loader. This class can be inherited. + + + + + Creates a new document loader. + + The context to use. + The optional request filter to use. + + + + Loads the data for the request asynchronously. + + The issued request. + The active download. + + + + The default (ready-to-use) HTTP requester. + + + + + Constructs a default HTTP requester with the information presented + in the info object. + + The user-agent name to use, if any. + An optional setup function for the HttpWebRequest object. + + + + Gets the used headers. + + + + + Gets or sets the timeout value. + + + + + Checks if the given protocol is supported. + + + The protocol to check for, e.g. http. + + + True if the protocol is supported, otherwise false. + + + + + Performs an asynchronous http request that can be cancelled. + + The options to consider. + + The token for cancelling the task. + + + The task that will eventually give the response data. + + + + + Dirty workaround to re-obtain the string representation of the cookie + for the set-cookie header. Uses the internal ToServerString method and + falls back to the ordinary ToString. + + + + + Dirty dirty workaround since the webrequester itself is already + quite stupid, but the one here (for the PCL) is really not the + way things should be programmed ... + + + + + Sets properties of the special headers (described here + http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers.aspx) + which are not accessible (in general) in this profile + (profile78). However, usually they are here and can be modified + with reflection. If not they are not set. + + The name of the property. + + The value of the property, which will be set. + + + + + Represents the default resource loader. This class can be inherited. + + + + + Creates a new resource loader. + + The context to use. + The optional request filter to use. + + + + Loads the data for the request asynchronously. + + The issued request. + The active download. + + + + The default HTTP response encapsulation object. + + + + + Creates a new default response object. + + + + + Gets or sets the status code of the response. + + + + + Gets or sets the url of the response. + + + + + Gets or sets the headers (key-value pairs) of the response. + + + + + Gets or sets a stream for content of the response. + + + + + Represents the arguments to load a document. + + + + + Creates a new document request for the given url. + + The resource's url. + + + + Creates a GET request for the given target from the optional source + node and optional referer string. + + The target to use. + The optional source of the request. + The optional referrer string. + The new document request. + + + + Creates a POST request for the given target with the provided body + and encoding type from the optional source node and optional + referer string. + + The target to use. + The body of the request. + The type of the request's body. + The optional source of the request. + The optional referrer string. + The new document request. + + + + Creates a POST request for the given target with the fields being + used to generate the body and encoding type plaintext. + + The target to use. + The fields to send. + The new document request. + + + + Creates a POST request for the given target with the fields being + used to generate the body and encoding type url encoded. + + The target to use. + The fields to send. + The new document request. + + + + Gets or sets the source of the request, if any. + + + + + Gets the target of the request. + + + + + Gets or sets the referrer of the request, if any. The name is + intentionally spelled wrong, to emphasize the relationship with the + HTTP header. + + + + + Gets or sets the method to use. + + + + + Gets or sets the stream of the request's body. + + + + + Gets or sets the mime-type to use, if any. + + + + + Gets a list of headers (key-values) that should be used. + + + + + Represents a binary large object. + http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob + + + + + Gets the length of the blob. + + + + + Gets the mime-type of the blob. + + + + + Gets if the stream to the blob is closed. + + + + + Gets the stream to the file. + + + + + Slices a subset of the blob into a another blob. + + The start of the slicing in bytes. + The end of the slicing in bytes. + The mime-type of the new blob. + A new blob with this blob's subset. + + + + Closes the stream to the blob. + + + + + Represents a concrete file. + http://dev.w3.org/2006/webapi/FileAPI/#dfn-file + + + + + Gets the file's name. + + + + + Gets the last modified date of the file. + + + + + Represents a list of files. + http://dev.w3.org/2006/webapi/FileAPI/#dfn-filelist + + + + + Gets the file at the specified index. + + The index of the file. + The file at the provided index. + + + + Gets the number of files in the list. + + + + + Adds a file to the list. + + The file to add. + + + + Removes a file from the list. + + The file to remove. + + True if the file was part of the list, otherwise false. + + + + + Resets the list of file entries. + + + + + Represents a container for file entries captured by the file + upload field. + + + + + Represents a download in progress. + + + + + The collection of (known / used) header names. + + + + + Tells all caching mechanisms from server to client or vice-versa + whether they may cache this object. It is measured in seconds. + e.g. Cache-Control: no-cache + e.g. Cache-Control: max-age=3600 + + + + + Options that are desired for the connection, + e.g. Connection: keep-alive + e.g. Connection: close + + + + + The length of the request/response body in octets (8-bit bytes), + e.g. Content-Length: 348 + + + + + A Base64-encoded binary MD5 sum of the content of the response, + e.g. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== + + + + + The MIME type of this content (only used with POST / PUT methods), + e.g. Content-Type: application/x-www-form-urlencoded + e.g. Content-Type: text/html; charset=utf-8 + + + + + The date and time that the message was sent, + e.g. Date: Tue, 15 Nov 1994 08:12:31 GMT + + + + + Implementation-specific headers that may have various effects + anywhere along the request-response chain, + e.g. Pragma: no-cache + + + + + Informs the client or server of proxies through which the response + or request was sent, + e.g. Via: 1.0 fred, 1.1 example.com (Apache/1.1) + + + + + A general warning about possible problems with the entity body, + e.g. Warning: 199 Miscellaneous warning + + + + + Content-Types that are acceptable for the response, + e.g. Accept: text/plain + + + + + Character sets that are acceptable, + e.g. Accept-Charset: utf-8 + + + + + List of acceptable encodings. See HTTP compression, + e.g. Accept-Encoding: gzip, deflate + + + + + List of acceptable human languages for response, + e.g. Accept-Language: en-US + + + + + Acceptable version in time, + e.g. Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT + + + + + Authentication credentials for HTTP authentication, + e.g. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + + + + + An HTTP cookie previously sent by the server with Set-Cookie, + e.g. Cookie: $Version=1; Skin=new; + + + + + Indicates that particular server behaviors are required by the + client, + e.g. Expect: 100-continue + + + + + The email address of the user making the request, + e.g. From: user@example.com + + + + + The domain name of the server (for virtual hosting), and the TCP + port number on which the server is listening. The port number may + be omitted if the port is the standard port for the service + requested. Mandatory since HTTP/1.1. Although domain name are + specified as case-insensitive, it is not specified whether the + contents of the Host field should be interpreted in a + case-insensitive manner and in practice some implementations of + virtual hosting interpret the contents of the Host field in a + case-sensitive manner, + e.g. Host: en.wikipedia.org:80 + + + + + Only perform the action if the client supplied entity matches the + same entity on the server. This is mainly for methods like PUT to + only update a resource if it has not been modified since the user + last updated it, + e.g. If-Match: "737060cd8c284d8af7ad3082f209582d" + + + + + Allows a 304 Not Modified to be returned if content is unchanged, + e.g. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT + + + + + Allows a 304 Not Modified to be returned if content is unchanged, + e.g. If-None-Match: "737060cd8c284d8af7ad3082f209582d" + + + + + If the entity is unchanged, send me the part(s) that I am missing; + otherwise, send me the entire new entity, + e.g. If-Range: "737060cd8c284d8af7ad3082f209582d" + + + + + Only send the response if the entity has not been modified since a + specific time, + e.g. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT + + + + + Limit the number of times the message can be forwarded through + proxies or gateways, + e.g. Max-Forwards: 10 + + + + + Initiates a request for cross-origin resource sharing (asks server + for an 'Access-Control-Allow-Origin' response header), + e.g. Origin: http://www.example-social-network.com + + + + + Authorization credentials for connecting to a proxy, + e.g. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + + + + + Request only part of an entity. Bytes are numbered from 0, + e.g. Range: bytes=500-999 + + + + + This is the address of the previous web page from which a link to + the currently requested page was followed. (The word referrer is + misspelled in the RFC as well as in most implementations.), + e.g. Referer: http://en.wikipedia.org/wiki/Main_Page + + + + + The transfer encodings the user agent is willing to accept: the + same values as for the response header Transfer-Encoding can be + used, plus the "trailers" value (related to the "chunked" transfer + method) to notify the server it expects to receive additional + headers (the trailers) after the last, zero-sized, chunk, + e.g. TE: trailers, deflate + + + + + Ask the server to upgrade to another protocol, + e.g. Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 + + + + + The user agent string of the user agent, + e.g. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) + Gecko/20100101 Firefox/21.0 + + + + + Specifying which web sites can participate in cross-origin resource + sharing, + e.g. Access-Control-Allow-Origin: * + + + + + What partial content range types this server supports, + e.g. Accept-Ranges: bytes + + + + + The age the object has been in a proxy cache in seconds, + e.g. Age: 12 + + + + + Valid actions for a specified resource. To be used for a 405 Method + not allowed, + e.g. Allow: GET, HEAD + + + + + The type of encoding used on the data, + e.g. Content-Encoding: gzip + + + + + The language the content is in, + e.g. Content-Language: da + + + + + An alternate location for the returned data, + e.g. Content-Location: /index.htm + + + + + An opportunity to raise a "File Download" dialog box for a known + MIME type with binary format or suggest a filename for dynamic + content. Quotes are necessary with special characters, + e.g. Content-Disposition: attachment; filename="fname.ext" + + + + + Where in a full body message this partial message belongs, + e.g. Content-Range: bytes 21010-47021/47022 + + + + + An identifier for a specific version of a resource, often a message + digest, + e.g. ETag: "737060cd8c284d8af7ad3082f209582d" + + + + + Gives the date/time after which the response is considered stale, + e.g. Expires: Thu, 01 Dec 1994 16:00:00 GMT + + + + + The last modified date for the requested object, in RFC2822 format, + e.g. Last-Modified: Tue, 15 Nov 1994 12:45:26 +0000 + + + + + Used to express a typed relationship with another resource, where + the relation type is defined by RFC5988, + e.g. Link: </feed>; rel="alternate" + + + + + Used in redirection, or when a new resource has been created, + e.g. Location: http://www.w3.org/pub/WWW/People.html + + + + + This header is supposed to set P3P policy, in the form of + P3P:CP="your_compact_policy". However, P3P did not take off, most + browsers have never fully implemented it, a lot of websites set + this header with fake policy text, that was enough to fool browsers + the existence of P3P policy and grant permissions for third party + cookies, + e.g. P3P: CP="This is not a P3P policy! See ... for more info." + + + + + Request authentication to access the proxy, + e.g. Proxy-Authenticate: Basic + + + + + Used in redirection, or when a new resource has been created. This + refresh redirects after 5 seconds, + e.g. Refresh: 5; url=http://www.w3.org/pub/WWW/People.html + + + + + If an entity is temporarily unavailable, this instructs the client + to try again after a specified period of time (in seconds), + e.g. Retry-After: 120 + + + + + A name for the server, + e.g. Server: Apache/2.4.1 (Unix) + + + + + An HTTP cookie, + e.g. Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 + + + + + The HTTP status of the response. "Status" is not listed as a + registered header. The "Status-Line" of a "Response" is defined by + RFC2616 without any explicit Status: header name, + e.g. Status: 200 OK + + + + + A HSTS Policy informing the HTTP client how long to cache the HTTPS + only policy and whether this applies to subdomains, + e.g. Strict-Transport-Security: max-age=16070400; includeSubDomains + + + + + The Trailer general field value indicates that the given set of + header fields is present in the trailer of a message encoded with + chunked transfer-coding, + e.g. Trailer: Max-Forwards + + + + + The form of encoding used to safely transfer the entity to the user. + Currently defined methods are: chunked, compress, deflate, gzip, + identity, + e.g. Transfer-Encoding: chunked + + + + + Tells downstream proxies how to match future request headers to + decide whether the cached response can be used rather than + requesting a fresh one from the origin server, + e.g. Vary: * + + + + + Indicates the authentication scheme that should be used to access + the requested entity, + e.g. WWW-Authenticate: Basic + + + + + Represents the usable methods for transmitting HTTP forms. + + + + + The GET method. + + + + + The POST method. + + + + + The PUT method. + + + + + The DELETE method. + + + + + The OPTIONS method. + + + + + The HEAD method. + + + + + The TRACE method. + + + + + The CONNECT method. + + + + + Defines methods to retrieve and store cookies. + + + + + Gets the cookie value of the given address. + + The origin of the cookie. + The value of the cookie. + + + + Sets the cookie value for the given address. + + The origin of the cookie. + The value of the cookie. + + + + Interface used to handle top-level document requests. These requests + include navigation tasks. + + + + + Performs an asynchronous request that can be cancelled. + + The options to consider. + The download instance to track. + + + + Basic contract for a currently active download. + + + + + Gets the target of the download. + + + + + Gets the originator of the download, if any. + + + + + Defines the methods to perform an integrity check. + + + + + Checks if the given content satisfies the provided integrity + attribute. + + The content to hash. + The value of the integrity attribute. + True if integrity is preserved, otherwise false. + + + + The interface implemented by elements that may load resources. + + + + + Gets the current download or resource, if any. + + + + + Represents the basic interface for all loaders. + + + + + Gets the currently active downloads. + + The downloads in progress. + + + + Defines the required methods any requester object must have. + + + + + Checks if the given protocol is supported. + + + The protocol to check for, e.g. http. + + + True if the protocol is supported, otherwise false. + + + + + Performs an asynchronous request that can be cancelled. + + The options to consider. + The token for cancelling the task. + + The task that will eventually give the response data. + + + + + Fired when a request is starting. + + + + + Fired when a request is finished. + + + + + Interface used to handle resource requests for a document. These + requests include, but are not limited to, media, script and styling + resources. + + + + + Performs an asynchronous request that can be cancelled. + + The options to consider. + + The task that will eventually give the resource's response data. + + + + + Specifies what is stored when receiving data. + + + + + Gets the status code that has been send with the response. + + + + + Gets the url of the response. + + + + + Gets the headers that have been send with the response. + + + + + Gets the content that has been send with the response. + + + + + Options for the loader. + + + + + Gets or sets if navigation is enabled. + By default it is enabled. + + + + + Gets or sets if resource loading is enabled. + By default it is disabled. + + + + + Gets or sets the filter, if any. + + + + + Represents the default cookie service. This class can be inherited. + + + + + Creates a new cookie service for non-persistent cookies. + + + + + Gets the associated cookie container. + + + + + Gets the cookie value of the given address. + + The origin of the cookie. + The value of the cookie. + + + + Sets the cookie value for the given address. + + The origin of the cookie. + The value of the cookie. + + + + Represents an Internet media type. + + + + + Creates a new MIME type. + + The serialized value. + + + + Gets the content part, i.e. everything without the parameters. + + + + + Gets the general type. + + + + + Gets the media type, if specified. + + + + + Gets the suffix, if any. + + + + + Gets an iterator over all integrated keys. + + + + + Returns the value of the parameter with the specified key. + + The parameter's key. + The value of the parameter or null. + + + + Returns the string representation of the MIME type. + + The currently stored MIME type. + + + + Compares the MIME types without considering their parameters. + + The type to compare to. + True if both types are equal, otherwise false. + + + + Compares to the other object. It has to be a MIME type. + + The object to compare to. + True if both objects are equal, otherwise false. + + + + Computes the hash code for the MIME type. + + The computed hash code. + + + + Runs the Equals method from a with b. + + The first MIME type. + The MIME type to compare to. + True if both are equal, otherwise false. + + + + Runs the negated Equals method from a with b. + + The first MIME type. + The MIME type to compare to. + True if both are not equal, otherwise false. + + + + Contains a list of common mime-types. + + + + + Gets the mime type from a file extension ".ext". + + The extension (starting with a dot). + The mime-type of the given extension. + + + + Gets some extension ".ext" from a MIME type. + + The mime-type of the given extension. + An extension (starting with a dot) or an empty string. + + + + Gets the mime-type for HTML text: text/html. + + + + + Gets the mime-type for a PNG image: image/png. + + + + + Gets the mime-type for plain text: text/plain. + + + + + Gets the mime-type for XML text: text/xml. + + + + + Gets the mime-type for SVG text: image/svg+xml. + + + + + Gets the mime-type for a cascading style sheet: text/css. + + + + + Gets the default mime-type for JavaScript scripts: text/javascript. + + + + + Gets the mime-type for JSON text: application/json. + + + + + Gets the mime-type for XML applications: application/xml. + + + + + Gets the mime-type for XHTML / XML text: application/xhtml+xml. + + + + + Gets the mime-type for raw binary data: application/octet-stream. + + + + + Gets the mime-type for a form: application/x-www-form-urlencoded. + + + + + Gets the mime-type for multipart form data: multipart/form-data. + + + + + Checks if the given mime-type is one of the JavaScript variants. + + The type to check for. + + True if it is a legal JavaScript mime-type, otherwise false. + + + + + Checks if the given mime-type is equivalent to the provided string + representation. + + The type to check for. + THe string representation. + + True if both (type and representation) are equivalent, else false. + + + + + The default origin behavior states. + + + + + Data is gathered. + + + + + Data is discarded in NO CORS. + + + + + Contains a collection of default ports. + + + + + Gets the default port for the given protocol, if the protocol is a + relative scheme protocol. + + The protocol to get the port for. + + The string representing the default port, or null, if the protocol + is not known. + + + + + Basic implementation of a request processor. + + + + + Creates a new request processor. + + + + + Gets the status if downloads can be created. + + + + + Gets the associated download. + + + + + Processes the given request asynchronously. + + + + + Processes the response. + + + + + Finishes the download. + + + + + Fetches the given request with CORS. + + + + + Cancels the current download, if any. + + + + + Checks if the given target is different than the current download. + + + + + For more information, see: + http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#update-the-image-data + + + + + Represents a request processor. + + + + + Gets the current download, if any. + + + + + Starts processing the given request by cancelling + the current download if any. + + The new request. + The task handling the request. + + + + See the following link for more infos: + https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-load + + + + + Contains the known protocol names. + + + + + The Hypertext Transfer Protocol. + + + + + The Hypertext Transfer Protocol Secure. + + + + + The File Transfer Protocol. + + + + + The pseudo JavaScript protocol. + + + + + The pseudo Data protocol. + + + + + The pseudo Mailto protocol. + + + + + The pseudo File protocol. + + + + + The WebSocket protocol. + + + + + The WebSocket Secure protocol. + + + + + The Telnet protocol. + + + + + The Secure Shell protocol. + + + + + The legacy gopher protocol. + + + + + The binary large object protocol. + + + + + Checks if the given protocol (without a colon in the end) is + following a relative scheme. + + The protocol to examine. + + True if the protocol is a relative scheme, otherwise false. + + + + + Checks if the given protocol (without a colon in the end) is + suitable for deriving the origin. + + The protocol to examine. + + True if the protocol is suited for origin, otherwise false. + + + + + The default HTTP request encapsulation type. + + + + + Creates a new default requests. + + + + + Gets or sets the method that should be used. + + + + + Gets or sets the address should be requested. + + + + + Gets or sets a list of headers (key-values) that should be used. + + + + + Gets or sets a stream to the content (positioned at the origin). + + + + + Useful extensions for IRequester objects. + + + + + Checks if the status code corresponds to a redirected response. + + The given status code. + True if the status code hints redirection, otherwise false. + + + + Performs a potentially CORS-enabled fetch from the given URI by + using an asynchronous GET request. For more information see: + http://www.w3.org/TR/html5/infrastructure.html#potentially-cors-enabled-fetch + + The resource loader to use. + The CORS request to issue. + + The active download. + + + + + Represents the arguments to load a resource. + + + + + Creates a new resource request for the given url. + + The request's source. + The resource's url. + + + + Gets the source of the request. + + + + + Gets the target of the request. + + + + + Gets or sets the origin of the request, if any. + + + + + Gets or sets if the manual redirect flag is active. + + + + + Gets or sets if the force same origin flag is active. + + + + + Gets or sets if the omit credentials flag is active. + + + + + Gets or sets if the block cookies flag is active. + + + + + Represents some useful extensions for the response. + + + + + Gets the content-type from the response's headers. The default type + is derived from the file extension of the path, if any. + + The response to examine. + The provided or default content-type. + + + + Gets the content-type from the response's headers. + + The response to examine. + The default type to apply. + The provided or default content-type. + + + + The virtual response class. + + + + + Creates a new virtual response. + + The request callback. + The resulted response. + + + + Sets the location of the response to the given url. + + The imaginary url of the response. + The current instance. + + + + Sets the location of the response to the provided address. + + The string to use as an url. + The current instance. + + + + Sets the location of the response to the uri's value. + + The Uri instance to convert. + The current instance. + + + + Sets the value of the cookie associated with the response. + + The cookie's value. + The current instance. + + + + Sets the status code. + + The status code to set. + The current instance. + + + + Sets the status code by providing the integer value. + + The integer representing the code. + The current instance. + + + + Sets the header with the given name and value. + + The header name to set. + The value for the key. + The current instance. + + + + Sets the headers with the name of the properties and their + assigned values. + + The object to decompose. + The current instance. + + + + Sets the headers with the name of the keys and their assigned + values. + + The dictionary to use. + The current instance. + + + + Sets the response's content from the provided string. + + The text to use as content. + The current instance. + + + + Sets the response's content from the provided stream. + + The response's content stream. + True to dispose afterwards. + The current instance. + + + + Allows basic serialization. + + + + + Writes the serialization of the node guided by the formatter. + + The output target of the serialization. + The formatter to use. + + + + Basic interface for CSS node serialization. + + + + + Concats the given rules to create the stylesheet serialization. + + The rules to aggregate. + The serialization of the sheet. + + + + Creates the serialization of a declaration with the given name, + value and important flag. + + The name of the declaration. + The value of the declaration. + The value of the important flag. + The serialization of the declaration. + + + + Creates the serialization of the declarations with the provided + string representations. + + The declarations to aggregate. + The serialization of the declarations. + + + + Converts the name and value of the provided rule to a simple rule. + + The name of the simple rule. + The value of the simple rule. + The serialization of the simple rule. + + + + Converts the name, prelude and rules of the provided rule to a + composed rule. + + The name of the nested rule. + The optional prelude. + The serialization of the nested rules. + The serialization of the nested rule. + + + + Concats the given rules to create a block serialization. + + The rules to aggregate. + The serialization of the CSS rule block. + + + + Creates a serialization of a comment with the provided data. + + The data of the comment. + The serialization of the comment. + + + + The annotation-xml math element. + + + + + Represents an element of the MathML DOM. + + + + + + + + + + + + + + The mi math element. + + + + + The mn math element. + + + + + The mo math element. + + + + + The math string element. + + + + + The mtext math element. + + + + + Provides string to MathElement instance creation mappings. + + + + + Returns a specialized MathMLElement instance for the given tag. + + The document that owns the element. + The given tag name. + The prefix of the element, if any. + The optional flags, if any. + The specialized MathMLElement instance. + + + + Represents an audio track. + + + + + Gets the id of the audio track. + + + + + Gets the kind of audio track. + + + + + Gets the label of the track. + + + + + Gets the language of the track. + + + + + Gets or sets if the track is enabled. + + + + + Represents a list of audio tracks. + + + + + Gets the number of tracks. + + + + + Gets the track at the given index. + + The 0-based track index. + The track at the position. + + + + Gets the track with the specified id. + + The HTML id of the track. + The track with the given id, if any. + + + + Event triggered after changing contents. + + + + + Event triggered after adding a track. + + + + + Event triggered after removing a track. + + + + + Represents the canvas rendering context. + More information is available at the WHATWG homepage: + http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting.html#canvasrenderingcontext2d + + + + + Gets the associated canvas element. + + + + + Gets or sets the width of the canvas. + + + + + Gets or sets the height of the canvas. + + + + + Push state on state stack. + + + + + Pop state stack and restore state. + + + + + The MediaController for controlling a media. + + + + + Gets the currently buffered time range. + + + + + Gets the currently seekable time range. + + + + + Gets the currently played time range. + + + + + Gets the duration of the controlled media. + + + + + Gets or sets the current time of the controlled media. + + + + + Gets or sets the default playback rate. + + + + + Gets or sets the current playback rate. + + + + + Gets or sets the volume of the controlled media. + + + + + Gets or sets if the controlled media is muted. + + + + + Gets if the media is currently paused. + + + + + Plays the underlying media. + + + + + Pauses the underlying media. + + + + + Gets the current ready state of the media. + + + + + Gets the current playback state of the contained media. + + + + + Event triggered after being emptied. + + + + + Event triggered after the meta data has been received. + + + + + Event triggered after the data has been loaded. + + + + + Event triggered when the media can be played. + + + + + Event triggered when the media can be fully played. + + + + + Event triggered after the media ended. + + + + + Event triggered when waiting for input. + + + + + Event triggered when the media cursor changed. + + + + + Event triggered after the time updated. + + + + + Event triggered after the media paused. + + + + + Event triggered after the media started. + + + + + Event triggered before the media started. + + + + + Event triggered after the rate changed. + + + + + Event triggered after the volume changed. + + + + + Stores information about media errors. + + + + + Gets the code that represents the media error. + + + + + Represents the typedef for any rendering context. + This is shown is the base interface for all rendering + contexts. + + + + + Gets the ID of the rendering context. + + + + + Gets if the context's bitmap mode is fixed. + + + + + Gets the bound host of the context. + + + + + Converts the current data to the given image format. + + The type of the image format. + The raw content bytes of the image. + + + + Represents a service for creating rendering contexts. + + + + + Checks if the given context is supported. + + The ID of the context. + True if the context is supported, otherwise false. + + + + Creates the given context or returns null, if this is not possible. + + The host the context. + The ID of the context. + The instance of the rendering context. + + + + Information about a text track. + + + + + Gets the text track kind of the text track. + + + + + Gets the text track label of the text track. + + + + + Gets the text track language of the text track. + + + + + Gets or sets the mode of the text track. + + + + + Gets the available text cues. + + + + + Gets the active text cues. + + + + + Adds another cue to the text track. + + The cue to add. + + + + Removes a cue from the text track. + + The cue that should be removed. + + + + Event triggered after a cue has changed. + + + + + Represents a text track cue. + + + + + Gets the text track cue identifier. + + + + + Gets the assigned track for this cue. + + + + + Gets or sets the text track cue start time, in seconds. + + + + + Gets or sets the text track cue end time, in seconds. + + + + + Gets or sets the text track cue pause-on-exit flag. + + + + + Gets or sets a string representing the text track cue writing direction, + as follows. If it is horizontal: The empty string. If it is vertical + growing left: The string "rl". If it is vertical growing right: The string "lr". + + + + + Gets or sets the text track cue snap-to-lines flag. + + + + + Gets or sets the text track cue line position. In the case of + the value being auto, the string "auto" is returned. + + + + + Gets or sets the text track cue text position. + + + + + Gets or sets the text track cue size. + + + + + Gets or sets a string representing the text track cue alignment, as + follows. If it is start alignment: the string "start". If it is middle + alignment: the string "middle". If it is end alignment: the string "end". + If it is left alignment: the string "left". If it is right alignment: + the string "right". + + + + + Gets or sets the text track cue text in raw unparsed form. + + + + + Returns the text track cue text as a DocumentFragment of HTML elements + and other DOM nodes. + + The document fragment. + + + + Event triggered after entering. + + + + + Event triggered after exiting. + + + + + Contains a list of text cues. + + + + + Gets the number of cues. + + + + + Gets the cue at the given index. + + The 0-based cue index. + The cue at the position. + + + + Gets the cue with the specified id. + + The HTML id of the cue. + The cue with the given id, if any. + + + + Represents a list of text tracks. + + + + + Gets the number of tracks. + + + + + Gets the track at the given index. + + The 0-based track index. + The track at the position. + + + + Event triggered after adding a track. + + + + + Event triggered after removing a track. + + + + + Represents a media time range. + + + + + Gets the length of the range in frames. + + + + + Returns the time offset at which a specified time range begins. + + The range number to return the starting time for. + The time offset. + + + + Returns the time offset at which a specified time range ends. + + The range number to return the ending time for. + The time offset. + + + + Represents an video track. + + + + + Gets the id of the video track. + + + + + Gets the kind of video track. + + + + + Gets the label of the track. + + + + + Gets the language of the track. + + + + + Gets or sets if the track is selected. + + + + + Represents a list of video tracks. + + + + + Gets the number of tracks. + + + + + Gets the currently selected index. + + + + + Gets the track at the given index. + + The 0-based track index. + The track at the position. + + + + Gets the track with the specified id. + + The HTML id of the track. + The track with the given id, if any. + + + + Event triggered after changing contents. + + + + + Event triggered after adding a track. + + + + + Event triggered after removing a track. + + + + + An enumeration over the various playback states. + + + + + Waiting for the media to be ready. + + + + + Playing the current media. + + + + + The media has already finished playing. + + + + + Enumeration with the various media error codes. + + + + + The transfer has been aborted. + + + + + The network is unreachable. + + + + + The decoding process failed. + + + + + The source format is not supported. + + + + + An enumeration of possible network states. + + + + + The element has not yet been initialized. + Everything is in initial state. + + + + + The element's resource selection alg. is active. + No network usage at the moment, but nothing + loaded. + + + + + The download is in progress. + + + + + The element's resource selection alg. is active, + but has not yet found a resource to use. + + + + + An enumeration of media ready states. + + + + + No information is available. + + + + + Enough information obtained such that the duration of the + resource is available. + + + + + Data for immediate playback is available, but not enough + to advance. + + + + + Enough data for the current and further positions are + available. + + + + + All conditions are met and playback should immediately + execute. + + + + + The modes of a text track. + + + + + The text track is disabled. + + + + + The text track is hidden. + + + + + The text track is actually shown. + + + + + Contains information about a sound file. + + + + + Contains information about an image file. + + + + + Gets the width of the image. + + + + + Gets the height of the image. + + + + + Contains information about a media resource. + + + + + Gets the controller responsible for the media. + + + + + Contains information about a general object file. + + + + + Gets the width of the object. + + + + + Gets the height of the object. + + + + + Specifies general resource information. + + + + + Gets the source of the resource. + + + + + Represents a service to create a specific resource handler. + + + + + Checks if the given type is supported. + + The type of the resource. + True if the type is supported, otherwise false. + + + + Tries to create an inspector for the given resource. + + The response that contains the stream to the resource. + The token for cancelling the task. + A task that finishes with an inspector for the resource. + + + + Contains information about a video file. + + + + + Gets the width of the video. + + + + + Gets the height of the video. + + + + + Extensions for ensuring code portability. + + + + + Defines the API of an available engine for running scripts provided in + the code. + + + + + Checks if the given type is supported. + + The type of the script. + True if the type is supported, otherwise false. + + + + Evaluates a script for the given response asynchronously. + + + The response with the stream representing the source of the script. + + + The options with the parameters for invoking the script. + + The cancellation token. + The task evaluating the script. + + + + Transport object for running scripts. + + + + + Creates new script options for the given document. + + The document to use. + The event loop to use. + + + + Gets the event loop for the executing script. + + + + + Gets the parent document of the executing script. + + + + + Gets or sets the script element that triggered the invocation. + + + + + Gets or sets the encoding that has been selected for the script. + + + + + Represents the circle element of the SVG DOM. + + + + + Represents the desc element of the SVG DOM. + + + + + Represents an element of the SVG DOM. + + + + + + + + + + + + + + Represents the foreign object element of the SVG DOM. + + + + + Represents the svg element of the SVG DOM. + + + + + Represents the title element of the SVG DOM. + + + + + Represents the circle SVG element. + + + + + Represents the desc SVG element. + + + + + The SVGElement interface represents any SVG element. Some elements directly + implement this interface, other implement it via an interface that inherit it. + + + + + Represents the foreignobject SVG element. + + + + + Represents the svg SVG element. + + + + + Represents the title SVG element. + + + + + Provides string to SVGElement instance creation mappings. + + + + + Returns a specialized SVGElement instance for the given tag name. + + The document that owns the element. + The given tag name. + The prefix of the element, if any. + The optional flags, if any. + The specialized SVGElement instance. + + + + Useful methods for chars. + + + + + Converts a given character from the hex representation (0-9A-Fa-f) + to an integer. + + The character to convert. + + The integer value or undefined behavior if invalid. + + + + + Transforms the given number to a hexadecimal string. + + The number (0-255). + A 2 digit upper case hexadecimal string. + + + + Transforms the given character to a hexadecimal string. + + The single character. + A minimal digit lower case hexadecimal string. + + + + Determines if the given character is in the given range. + + The character to examine. + The lower bound of the range. + The upper bound of the range. + The result of the test. + + + + Determines if the given character is allowed as-it-is in queries. + + The character to examine. + The result of the test. + + + + Determines if the given character is allowed as-it-is in paths. + + The character to examine. + The result of the test. + + + + Determines if the given character is a uppercase character (A-Z) as + specified here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#uppercase-ascii-letters + + The character to examine. + The result of the test. + + + + Determines if the given character is a lowercase character (a-z) as + specified here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#lowercase-ascii-letters + + The character to examine. + The result of the test. + + + + Determines if the given character is a alphanumeric character + (0-9a-zA-z) as specified here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#alphanumeric-ascii-characters + + The character to examine. + The result of the test. + + + + Determines if the given character is a hexadecimal (0-9a-fA-F) as + specified here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#ascii-hex-digits + + The character to examine. + The result of the test. + + + + Gets if the character is actually a non-ascii character. + + The character to examine. + The result of the test. + + + + Gets if the character is actually a non-printable (special) + character. + + The character to examine. + The result of the test. + + + + Gets if the character is actually a (A-Z,a-z) letter. + + The character to examine. + The result of the test. + + + + Gets if the character is actually a name character. + + The character to examine. + The result of the test. + + + + Determines if the given character is a valid character for starting + an identifier. + + The character to examine. + The result of the test. + + + + Determines if the given character is a line break character as + specified here: + http://www.w3.org/TR/html401/struct/text.html#h-9.3.2 + + The character to examine. + The result of the test. + + + + Determines if the given character is a space character as specified + here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-character + + The character to examine. + The result of the test. + + + + Determines if the given character is a white-space character as + specified here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#white_space + + The character to examine. + The result of the test. + + + + Determines if the given character is a digit (0-9) as specified + here: + http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#ascii-digits + + The character to examine. + The result of the test. + + + + Determines if the given character is a valid url code point as specified here: + http://url.spec.whatwg.org/#url-code-points + + The character to examine. + The result of the test. + + + + Determines if the given character is invalid, i.e. zero, above the + max. codepoint or in an invalid range. + + The character to examine. + The result of the test. + + + + Determines if the given character is one of the two others. + + The character to test. + The first option. + The second option. + The result of the test. + + + + Determines if the given character is one of the three others. + + The character to test. + The first option. + The second option. + The third option. + The result of the test. + + + + Determines if the given character is one of the four others. + + The character to test. + The first option. + The second option. + The third option. + The fourth option. + The result of the test. + + + + Represents a Punycode encoding helper class. + + + + + A list of available punycode character mappings. + + + + + Encodes the given text using Punycode. + + + + + Provides a pool of used / recycled resources. + + + + + Gets or sets the maximum number of instances - at least 1. + + + + + Gets or sets the max. capacity per instance - at least 85000. + + + + + Either creates a fresh stringbuilder or gets a (cleaned) used one. + + A stringbuilder to use. + + + + Returns the given stringbuilder to the pool and gets the current + string content. + + The stringbuilder to recycle. + The string that is created in the stringbuilder. + + + + Useful methods for string objects. + + + + + Checks if the given string has a certain character at a specific + index. The index is optional (default is 0). + + The value to examine. + The character to look for. + The index of the character. + True if the value has the char, otherwise false. + + + + Retrieves a string describing the compatibility mode of the given quirksmode. + + A specific quriks mode. + The compatibility string. + + + + Transforms the given string to lower case by the HTML specification. + + The string to be transformed. + The resulting string. + + + + Converts the given value to a sandbox flag. + + The value to convert. + Should full screen be allowed? + The sandbox flag. + + + + Converts the given value to an enumeration value (or not). + + The value to convert. + The default value to consider (optional). + The converted enum value. + + + + Converts the given value to a double (or not). + + The value to convert. + The default value to consider (optional). + The converted double. + + + + Converts the given value to an integer (or not). + + The value to convert. + The default value to consider (optional). + The converted integer. + + + + Converts the given value to an unsigned integer (or not). + + The value to convert. + The default value to consider (optional). + The converted unsigned integer. + + + + Converts the given value to a boolean (or not). + + The value to convert. + The default value to consider (optional). + The converted boolean. + + + + Replaces the first occurance of the string search with replace. + + The text to use. + The string to search for. + The one-time replacement string. + The result of the search-and-replace. + + + + Collapses and strips all spaces in the given string. + + The string to collapse and strip. + The modified string with collapsed and stripped spaces. + + + + Collapses all spaces in the given string. + + The string to collapse. + The modified string with collapsed spaces. + + + + Examines if a the given list of string contains a certain element. + + The list of strings. + The element to search for. + The default comparison to use. + The status of the check. + + + + Checks if two strings are exactly equal. + + The current string. + The other string. + True if both are equal, false otherwise. + + + + Checks if two strings are equal when viewed case-insensitive. + + The current string. + The other string. + True if both are equal, false otherwise. + + + + Examines if the given element is equal to one of the given elements. + + The element to check for equality. + The first item to compare to. + The second item to compare to. + True if the element is equal to one of the elements, otherwise false. + + + + Examines if the given element is equal to one of the given elements. + + The element to check for equality. + The first item to compare to. + The second item to compare to. + The third item to compare to. + True if the element is equal to one of the elements, otherwise false. + + + + Examines if the given element is equal to one of the given elements. + + The element to check for equality. + The first item to compare to. + The second item to compare to. + The third item to compare to. + The fourth item to compare to. + True if the element is equal to one of the elements, otherwise false. + + + + Examines if the given element is equal to one of the given elements. + + The element to check for equality. + The first item to compare to. + The second item to compare to. + The third item to compare to. + The fourth item to compare to. + The fifth item to compare to. + True if the element is equal to one of the elements, otherwise false. + + + + Strips all line breaks from the given string. + + The string to examine. + A new string, which excludes the line breaks. + + + + Strips all leading and trailing space characters from the given string. + + The string to examine. + A new string, which excludes the leading and tailing spaces. + + + + Strips all leading and trailing space characters from the given char array. + + The array of characters to examine. + A new string, which excludes the leading and tailing spaces. + + + + Splits the string with the given char delimiter. + + The string to examine. + The delimiter character. + The list of tokens. + + + + Splits the char array with the given char delimiter. + + The char array to examine. + The delimiter character. + The list of tokens. + + + + Splits the string on commas. + + The string to examine. + The list of tokens. + + + + Checks if the provided string starts with the given value, either by exactly matching it, + or by comparing against the start including an additional dash character. + + The string to examine. + The value to check against. + The string comparison mode. + True if the string is exactly equal to or starts with the given value. + + + + Splits the string on space characters. + + The string to examine. + The list of tokens. + + + + Splits the string with the given char delimiter and trims the leading and tailing spaces. + + The string to examine. + The delimiter character. + The list of tokens. + + + + Converts the given string to an integer. + + The hexadecimal representation. + The integer number. + + + + Converts the given string to an integer. + + The decimal representation. + The integer number. + + + + Replaces characters in names and values that cannot be expressed by using the given + encoding with &#...; base-10 unicode point. + + The value to sanatize. + The encoding to consider. + The sanatized value. + + + + Serializes the string to a CSS string. + + The value to serialize. + The CSS string representation. + + + + Creates a CSS function from the string with the given argument. + + The CSS function name. + The CSS function argument. + The CSS function string. + + + + Replaces characters in names and values that should not be in URL + values. Replaces the bytes 0x20 (U+0020 SPACE if interpreted as + ASCII) with a single 0x2B byte ("+" (U+002B) character if + interpreted as ASCII). If a byte is not in the range 0x2A, 0x2D, + 0x2E, 0x30 to 0x39, 0x41 to 0x5A, 0x5F, 0x61 to 0x7A, it is + replaced with its hexadecimal value (zero-padded if necessary), + starting with the percent sign. + + The content to encode. + The encoded value. + + + + Decodes the provided percent encoded string. An exception is thrown + in case of an invalid input value. + + The value to decode. + The decoded content. + + + + Replaces every occurrence of a "CR" (U+000D) character not followed + by a "LF" (U+000A) character, and every occurrence of a "LF" + (U+000A) character not preceded by a "CR" (U+000D) character, by a + two-character string consisting of a U+000D CARRIAGE RETURN "CRLF" + (U+000A) character pair. + + The value to normalize. + The normalized string. + + + + Converts the current string to one of the encoding types. + + The string to convert. + + The valid encoding type string or null. + + + + + Converts the current string to one of the form methods. + + The string to convert. + + The valid form method string or null. + + + + + A string abstraction for micro parsers. + + + + + Creates a new string source from the given content. + + + + + Gets the current character. + + + + + Gets if the content has been fully scanned. + + + + + Gets the current index. + + + + + Gets the underlying content. + + + + + Advances by one character and returns the character. + + The next character. + + + + Goes back by one character and returns the character. + + The previous character. + + + + Extensions for the string source helper. + + + + + Skips all spaces starting at the current character. + + + + + Goes back n characters. + + + + + Goes back n characters. + + + + + Gets the upcoming character without advancing. + + + + + Contains useful information from the specification. + + + + + The end of file marker (Char.MaxValue). + + + + + The tilde character ( ~ ). + + + + + The pipe character ( | ). + + + + + The null character. + + + + + The ampersand character ( & ). + + + + + The number sign character ( # ). + + + + + The dollar sign character ( $ ). + + + + + The semicolon sign ( ; ). + + + + + The asterisk character ( * ). + + + + + The equals sign ( = ). + + + + + The plus sign ( + ). + + + + + The dash ( hypen minus, - ) character. + + + + + The comma character ( , ). + + + + + The full stop ( . ). + + + + + The circumflex accent ( ^ ) character. + + + + + The commercial at ( @ ) character. + + + + + The opening angle bracket ( LESS-THAN-SIGN ). + + + + + The closing angle bracket ( GREATER-THAN-SIGN ). + + + + + The single quote / quotation mark ( ' ). + + + + + The (double) quotation mark ( " ). + + + + + The (curved) quotation mark ( ` ). + + + + + The question mark ( ? ). + + + + + The tab character. + + + + + The line feed character. + + + + + The carriage return character. + + + + + The form feed character. + + + + + The space character. + + + + + The slash (solidus, /) character. + + + + + The no break space character. + + + + + The backslash ( reverse-solidus, \ ) character. + + + + + The colon ( : ) character. + + + + + The exclamation mark ( ! ) character. + + + + + The replacement character in case of errors. + + + + + The low line ( _ ) character. + + + + + The round bracket open ( ( ) character. + + + + + The round bracket close ( ) ) character. + + + + + The square bracket open ( [ ) character. + + + + + The square bracket close ( ] ) character. + + + + + The curly bracket open ( { ) character. + + + + + The curly bracket close ( } ) character. + + + + + The percent ( % ) character. + + + + + The maximum allowed codepoint (defined in Unicode). + + + + + Various HTML encoding helpers. + + + + + Gets the UTF-8 encoding. + + + + + Gets the UTF-16 (Big Endian) encoding. + + + + + Gets the UTF-16 (Little Endian) encoding. + + + + + Gets the UTF-32 (Little Endian) encoding. + + + + + Gets the UTF-32 (Little Endian) encoding. + + + + + Gets the chinese government standard encoding. + + + + + Gets the Big5 encoding. + + + + + Gets the Windows-874 encoding. + + + + + Gets the Windows-1250 encoding. + + + + + Gets the Windows-1251 encoding. + + + + + Gets the Windows-1252 encoding. + + + + + Gets the Windows-1253 encoding. + + + + + Gets the Windows-1254 encoding. + + + + + Gets the Windows-1255 encoding. + + + + + Gets the Windows-1256 encoding. + + + + + Gets the Windows-1257 encoding. + + + + + Gets the Windows-1258 encoding. + + + + + Gets the iso-8859-2 encoding. + + + + + Gets the iso-8859-53 encoding. + + + + + Gets the iso-8859-4 encoding. + + + + + Gets the iso-8859-5 encoding. + + + + + Gets the iso-8859-13 encoding. + + + + + Gets the US-ASCII encoding. + + + + + Gets the ks_c_5601-1987 encoding. + + + + + Checks if the provided encoding is any UTF-16 encoding. + + The encoding to check. + The result of the check (UTF-16BE, UTF-16LE). + + + + Tries to extract the encoding from the given http-equiv content + string. + + The value of the attribute. + + The extracted encoding or null if the encoding is invalid. + + + + + Detects if a valid encoding has been found in the given charset + string. + + The parsed charset string. + + True if a valid encdoing has been found, otherwise false. + + + + + Resolves an Encoding instance given by the charset string. + If the desired encoding is not found (or supported), then + UTF-8 will be returned. + + The charset string. + An instance of the Encoding class or null. + + + + The position in the source code. + + + + + An empty position (0, 0, 0). + + + + + Creates a new text position. + + The line of the character. + The column of the character. + The index of the character. + + + + Gets the line within the document. + The line is 1-based, so the first line has value 1. + + + + + Gets the column within the document. + The column is 1-based, so the first column has value 1. + + + + + Gets the position within the source. + The position is 1-based, so the first character is at position 1. + + + + + Gets the index within the source. + The index is 0-based, so the first character is at index 0. + + + + + Returns a new text position that includes the given offset. + + The number of columns to shift. + The new text position. + + + + Returns a new text position that is after the given character. + + The character to analyze. + The new text position. + + + + Returns a new text position that is after the given string. + + The string to analyze. + The new text position. + + + + Returns a string representation of the position in the text. + + + A string that contains the contained line and column. + + + + + Returns the hash code for this instance. + + + An integer that is the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + The object to compare with the current instance. + + + True if the given object is a text position with the same values, + otherwise false. + + + + + Indicates whether the current position is equal to the given + position. + + An object to compare with this object. + + True if the given position has the same values, otherwise false. + + + + + Compares the two positions by their absolute positions in the text + source. + + The first operand. + The second operand. + + True if the position of the first operand is greater than the + second operand. + + + + + Compares the two positions by their absolute positions in the text + source. + + The first operand. + The second operand. + + True if the position of the first operand is less than the second + operand. + + + + + Compares the current position with another position. + + The position to compare to. + + A mathematical representation of the relation (1 = greater, -1 = + less, 0 = equal). + + + + + The positional range in the source code. + + + + + Creates a new text range. + + The start of the range. + The end of the range. + + + + Gets the start position of the range. + + + + + Gets the end position of the range. + + + + + Returns a string representation of the range in the text. + + + A string that contains the start and end positions. + + + + + Returns the hash code for this instance. + + + An integer that is the hash code for this instance. + + + + + Indicates whether this instance and a specified object are equal. + + + The object to compare with the current instance. + + + True if the given object is a text position with the same values, + otherwise false. + + + + + Indicates whether the current range is equal to the given range. + + An object to compare with this object. + + True if the given range has the same start and end position, + otherwise false. + + + + + Compares the two ranges by their positions in the text source. + + The first operand. + The second operand. + + True if the start position of the first operand is greater than the + end position of the second operand. + + + + + Compares the two ranges by their positions in the text source. + + The first operand. + The second operand. + + True if the end position of the first operand is less than the + start position of the second operand. + + + + + Compares the current range with another range. + + The range to compare to. + + A mathematical representation of the relation (1 = greater, -1 = + less, 0 = equal). + + + + + A stream abstraction to handle encoding and more. + + + + + Creates a new text source from a string. No underlying stream will + be used. + + The data source. + + + + Creates a new text source from a string. The underlying stream is + used as an unknown data source. + + + The underlying stream as data source. + + + The initial encoding. Otherwise UTF-8. + + + + + Gets the full text buffer. + + + + + Gets the character at the given position in the text buffer. + + The index of the character. + The character. + + + + Gets the length of the text buffer. + + + + + Gets or sets the encoding to use. + + + + + Gets or sets the current index of the insertation and read point. + + + + + Disposes the text source by freeing the underlying stream, if any. + + + + + Reads the next character from the buffer or underlying stream, if + any. + + The next character. + + + + Reads the upcoming numbers of characters from the buffer or + underlying stream, if any. + + The number of characters to read. + The string with the next characters. + + + + Prefetches the number of bytes by expanding the internal buffer. + + The number of bytes to prefetch. + The cancellation token. + The awaitable task. + + + + Prefetches the whole stream by expanding the internal buffer. + + The cancellation token. + The awaitable task. + + + + Inserts the given content at the current insertation mark. Moves the + insertation mark. + + The content to insert. + + + + Represents a view on a particular source code. + + + + + Creates a new text view for the given range. + + + + + Gets the start and end of the text view. + + + + + Gets the text associated with this view. + + + + + Useful helpers for the XML parser. + + + + + Determines if the given character is a legal character for the public id field: + http://www.w3.org/TR/REC-xml/#NT-PubidChar + + The character to examine. + The result of the test. + + + + Determines if the given character is a legal name start character for XML. + http://www.w3.org/TR/REC-xml/#NT-NameStartChar + + The character to examine. + The result of the test. + + + + Determines if the given character is a name character for XML. + http://www.w3.org/TR/REC-xml/#NT-NameChar + + The character to examine. + The result of the test. + + + + Determines if the given string is a valid (local or qualified) name. + + The string to examine. + The result of the test. + + + + Determines if the given string is a valid qualified name. + + The string to examine. + The result of the test. + + + + Checks if the given char is a valid character. + + The char to examine. + True if the char would indeed be valid. + + + + Checks if the given integer would be a valid character. + + The integer to examine. + True if the integer would indeed be valid. + + + + Represents an Url class according to RFC3986. This is the base for all + internal Url manipulation. + + + + + Creates a new Url from the given string. + + The address to represent. + + + + Creates a new absolute Url from the relative Url with the given + base address. + + The base address to use. + + The relative address to represent. + + + + + Creates a new Url by copying the other Url. + + The address to copy. + + + + Creates an Url from an absolute url transported in a string. + + The address to use. + The new Url. + + + + Creates an Url from an url transported in an Uri. + + The url to use. + The new Url. + + + + Gets the origin of the stored url. + + + + + Gets if the URL parsing resulted in an error. + + + + + Gets if the stored url is relative. + + + + + Gets if the stored url is absolute. + + + + + Gets or sets the username for authorization. + + + + + Gets or sets the password for authorization. + + + + + Gets the additional stored data of the URL. This is data that could + not be assigned. + + + + + Gets or sets the fragment. + + + + + Gets or sets the host, e.g. "localhost:8800" or "www.w3.org". + + + + + Gets or sets the host name, e.g. "localhost" or "www.w3.org". + + + + + Gets or sets the hyper reference, i.e. the full path. + + + + + Gets or sets the pathname, e.g. "mypath". + + + + + Gets or sets the port, e.g. "8800". + + + + + Gets or sets the protocol, e.g. "http". + + + + + Gets or sets the query. + + + + + Serves as the default hash function. + + A hash code for the current url. + + + + Determines whether the specified object is equal to the current + object. + + + The object to compare with the current object. + + + True if the object is equal to the current object, otherwise false. + + + + + Determines whether the specified url is equal to the current + object. + + + The url to compare with the current one. + + + True if the given url is equal to the current url, otherwise false. + + + + + Converts the given Url to an Uri. + + The Url to convert. + The Uri instance. + + + + Returns a string that represents the current url. + + The currently stored url. + + + + Returns the string representation of the current location. + + The string that equals the hyper reference. + + + + Represents the standard XHTML markup formatter. + + + + + An instance of the XhtmlMarkupFormatter. + + + + + + + + + + + + + + + + + + + + + + + + + + Creates the string representation of the attribute. + + The attribute to serialize. + The string representation. + + + + Escapes the given text by replacing special characters with their + XHTML entity (amp, nbsp as numeric value, lt, and gt). + + The string to alter. + The altered string. + + + + Gets the local name using the XML namespace prefix if required. + + The name to be properly represented. + The string representation. + + + diff --git a/TYTD.Api/bin/Release/AsyncEnumerable.dll b/TYTD.Api/bin/Release/AsyncEnumerable.dll new file mode 100755 index 0000000000000000000000000000000000000000..8902bed9dabe590e1b09377dce2c2c7d29c462f6 GIT binary patch literal 139776 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 WSYS?y?;{v<6COPO^ymMd1^x%N$59dh literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/AsyncEnumerable.xml b/TYTD.Api/bin/Release/AsyncEnumerable.xml new file mode 100755 index 0000000..d6838e4 --- /dev/null +++ b/TYTD.Api/bin/Release/AsyncEnumerable.xml @@ -0,0 +1,1675 @@ + + + + AsyncEnumerable + + + + + Base abstract class that implements . + Use concrete implementation or . + + + + + Returns pre-cached empty collection + + + + + Helps to enumerate items in a collection asynchronously + + + + IAsyncEnumerable<int> ProduceNumbers(int start, int end) + { + return new AsyncEnumerable<int>(async yield => { + for (int number = start; number <= end; number++) + await yield.ReturnAsync(number); + }); + } + + async Task ConsumeAsync() + { + var asyncEnumerableCollection = ProduceNumbers(start: 1, end: 10); + await asyncEnumerableCollection.ForEachAsync(async number => { + await Console.Out.WriteLineAsync(number); + }); + } + + + + + + A pre-cached empty collection + + + + + Constructor + + A function that enumerates items in a collection asynchronously + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Similar to , but allows you to pass a state object into the enumeration function, what can be + used for performance optimization, so don't have to create a delegate on the fly every single time you create the enumerator. + + Type of items returned by + Type of the state object + + + + Constructor + + A function that enumerates items in a collection asynchronously + A state object that is passed to the + + + + A user state that gets passed into the enumeration function. + + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + Creates an enumerator that iterates through a collection asynchronously + + Returns a task with the created enumerator as result on completion + + + + This exception is thrown when you call + or when the enumerator is disposed before reaching the end of enumeration. + + + + + Base type for and + + + + + Returns an empty . Safe to use by multiple threads. + + + + + Helps to enumerate items in a collection asynchronously. + Provides exactly the same functionality as , + but allows to pass a user state object in the enumeration function, + what can be used for performance optimization. + + + + + Constructor + + A function that enumerates items in a collection asynchronously + Any state object that is passed to the + Optional action that gets invoked on Dispose() + + + + Finalizer + + + + + A user state that gets passed into the enumeration function. + + + + + Gets the element in the collection at the current position of the enumerator + + + + + Tells if enumeration is complete. Returns True only after MoveNextAsync returns False. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources + + True if called from Dispose() method, otherwise False - called by GC + + + + Helps to enumerate items in a collection asynchronously + + + + + An empty . Safe to use by multiple threads. + + + + + The asynchronous version of the 'yield' construction + + + + + Gets the cancellation token that was passed to the method + + + + + Yields an item asynchronously (similar to 'yield return' statement) + + The item of the collection to yield + Returns a Task which tells if when you can continue to yield the next item + + + + Stops iterating items in the collection (similar to 'yield break' statement) + + Always throws this exception to stop the enumeration task + + + + Constructor + + A function that enumerates items in a collection asynchronously + Optional action that gets invoked on Dispose() + + + + Internal implementation details + + + + + Converts generic IEnumerable to IAsyncEnumerable + + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for the enumerator of + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Creates adapter for + + The element type + The instance of to convert + If True the enumeration will be performed on the same thread, otherwise the MoveNext will be executed on a separate thread with Task.Run method + Returns an instance of implementation + + + + Extension methods for for backward compatibility with version 1 of this libraray. + Not recommended to use. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Converts to . + This method is marked as [Obsolete] to discourage you from doing such conversion, + which defeats the whole purpose of having a non-blocking async enumeration, + and what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Creates an enumerator that iterates through a collection synchronously. + This method is marked as [Obsolete] to discourage you from using this synchronous version of + the method instead of , + what might lead to dead-locks in ASP.NET or WPF applications. + + + + + Class to provide access to static method. + + + + + Stops ForEachAsync iteration (similar to 'break' statement) + + Always throws this exception to stop the ForEachAsync iteration + + + + This exception is thrown when you call . + + + + + Enables asynchronous 'foreach' enumeration over an IAsyncEnumerable + + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + A synchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + A cancellation token to stop enumerating + Returns a Task which does enumeration over elements in the collection + + + + Enumerates over all elements in the collection asynchronously + + The type of elements in the collection + The collection of elements which can be enumerated asynchronously + An asynchronous action to perform for every single item in the collection, where the second argument is the index of an item + Returns a Task which does enumeration over elements in the collection + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + A that can halt enumeration of . + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + A that can halt enumeration of . + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + A that can halt enumeration of + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + A that can halt enumeration of + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + A that can halt enumeration of + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values 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. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the value in the IAsyncEnumerable returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each source element. + + + + Projects each element of a sequence to an IAsyncEnumerable<T> and flattens the resulting sequences into one sequence. + + The type of the elements of . + The type of the intermediate elements collected by . + The type of the elements of the resulting sequence by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element of the input sequence. + A transform function to apply to each element of the intermediate sequence. + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + A cancellation token to cancel the async operation + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + An to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function, a comparer, and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + An to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + + Creates a from an according to a specified key selector function. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and key comparer. + + The type of the elements of . + The type of the key returned by . + The to create a from. + A function to extract a key from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + A cancellation token to cancel the async operation. + + + + Creates a from an according to a specified key selector function, a comparer and an element selector function. + + The type of the elements of . + The type of the key returned by . + The type of the value returned by . + The to create a from. + A function to extract a key from each element. + A transform function to produce a result element value from each element. + An to compare keys. + A cancellation token to cancel the async operation. + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + + + + Filters the elements of an based on a specified type. + + The type to filter the elements of the sequence on. + The whose elements to filter. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + + + + Creates a new sequence based on input one plus an extra element at the end. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Creates a new sequence based on input one plus an extra element in the beginning. + + The type of the elements of . + An to return the single element of. + An extra element to be returned on enumeration. + + + + Concatenates two sequences. + + The type of the elements of the input sequences. + The first sequence to concatenate. + The sequence to concatenate to the first sequence. + + + + Returns distinct elements from a sequence by using the default equality comparer to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + + + + Returns distinct elements from a sequence by using a specified to compare values. + + The type of the elements of . + The sequence to remove duplicate elements from. + An to compare values. + + + + Applies an accumulator function over a sequence. + + The type of the elements of . + An to aggregate over. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. + + The type of the elements of . + The type of the accumulator value. + An to aggregate over. + The initial accumulator value. + An accumulator function to be invoked on each element. + A cancellation token to cancel the async operation. + + + + Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. + + The type of the elements of . + The type of the accumulator value. + The type of the resulting value. + An 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. + A cancellation token to cancel the async operation. + + + + Determines whether all elements of a sequence satisfy a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false. + or is null. + + + + Determines whether any element of a sequence exists or satisfies a condition. + + An that contains the elements to apply the predicate to. + A function to test each element for a condition. + A cancellation token to cancel the async operation. + The type of the elements of . + true if any elements in the source sequence pass the test in the specified predicate; otherwise, false. + or is null. + + + + Extension methods for interface + + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + The message of an exception which is thrown when the source collection is empty. + The message of an exception which is thrown when the source collection has more than one element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + The message of an exception which is thrown when the source collection is has no element matching the criteria. + The message of an exception which is thrown when the source collection has more than one element matching the criteria. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence. + + The type of the elements of . + An to return the single element of. + Flag to call the on input when this operation is complete + + + + Returns the only element of a sequence, and returns a default value if there is not exactly one element in the sequence that matches the criteria. + + The type of the elements of . + An to return the single element of. + Criteria predicate to select the only element. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in the . + + The type of the elements of + An to return an element from. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + An optional custom exception message for the case when the is empty + Flag to call the on input when this operation is complete + + + + Returns the first element in the , or a default value if no element is found. + + The type of the elements of + An to return an element from. + Flag to call the on input when this operation is complete + + + + Returns the first element in a sequence that satisfies a specified condition, or a default value if no element is found. + + The type of the elements of + An to return an element from. + A function to test each element for a condition. + Flag to call the on input when this operation is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values to invoke a transform function on. + A transform function to apply to each element. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + The type of the value returned by . + A sequence of values 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. + Flag to call the on input when enumeration is complete + + + + Returns a specified number of contiguous elements from the start of a sequence. + + The type of the elements of + A sequence to return elements from. + The number of elements to return. + Flag to call the on input when enumeration is complete + + + + Returns elements from a sequence as long as a specified condition is true. + + The type of the elements of + A sequence to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Creates a list of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + Creates an array of elements asynchronously from the enumerable source + + The type of the elements of source + The collection of elements + Flag to call the on input when this operation is complete + + + + An to return elements from. + + The type of the elements of + An to return elements from. + The number of elements to skip before returning the remaining elements. + Flag to call the on input when enumeration is complete + + + + Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. + + The type of the elements of + An to return elements from. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Filters a sequence of values based on a predicate. + + The type of the elements of + An to filter. + A function to test each element for a condition. + Flag to call the on input when enumeration is complete + + + + Projects each element of a sequence into a new form. + + The type of the elements of + An to filter. + A function to test each element for a condition; the second parameter of the function represents the index of the source element. + Flag to call the on input when enumeration is complete + + + + Casts the elements of an to the specified type. + + The type to cast the elements of to. + An that contains the elements to be cast to type . + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + Flag to call the on input when enumeration is complete + + + + Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. + + The type of the elements of . + The sequence to return the specified value for if it is empty. + The value to return if the sequence is empty. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + + The type of a .NET's standard collection that forms a batch. Supported types are: + , , , , + , , , + , , . + + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + Flag to call the on input when enumeration is complete + + + + Splits the input collection into series of batches. + + The type of the elements of + The type of a batch of elements. + An to batch. + The maximum number of elements to put in a batch regardless their total weight. + The maximum logical weight of elements that a single batch can accomodate. + A function that computes a weight of a particular element, which is used to make a decision if it can fit into a batch. + A function that creates a new batch with optional suggested capacity. + An action that adds an element to a batch. + Flag to call the on input when enumeration is complete + + + + Produces the set union of two sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + An whose elements form the first set for the union. + An whose elements form the second set for the union. + Flag to call the on input and when enumeration is complete. + + + + Produces the set union of multiple sequences, which includes duplicate elements. + + The type of the elements of the input sequences. + A set of whose elements form the union. + Flag to call the on all input when enumeration is complete. + + + + Used in ParallelForEachAsync<T> extension method + + + + + Constructor + + + + + Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner + + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + If True (the default behavior), waits on completion for all started tasks when the loop breaks due to cancellation or an exception + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item, where first argument is the item and second argument is item's index in the collection + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Set to True to stop processing items when first exception occurs. The result might contain several exceptions though when faulty tasks finish at the same time. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Maximum items to schedule processing in parallel. The actual concurrency level depends on TPL settings. Set to 0 to choose a default value based on processor count. + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Invokes an asynchronous action on each item in the collection in parallel + + The type of an item + The collection of items to perform actions on + An asynchronous action to perform on the item + Cancellation token + Wraps any exception(s) that occurred inside + Thrown when the loop is canceled with + + + + Exposes an asynchronous enumerator, which supports a simple iteration over a non-generic collection + + + + + Creates an enumerator that iterates through a collection asynchronously + + A cancellation token to cancel creation of the enumerator in case if it takes a lot of time + Returns a task with the created enumerator as result on completion + + + + Supports a simple asynchronous iteration over a non-generic collection + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element of the collection asynchronously + + Returns a Task that does transition to the next element. The result of the task is True if the enumerator was successfully advanced to the next element, or False if the enumerator has passed the end of the collection. + + + + Internal base type for and + + + + + Utility methods for + + + + + Forcibly disables re-use of instances in the method. + This is just a safety switch in case when something goes wrong with re-using instances of . + + + + + Resets a to initial incomplete state. + This method by default re-uses the same instance of the by re-setting internal state of its using reflection. + If such feature is not available or explicitly disable with the method, it just returns a new instance of a . + + Type of the result value + Target to be reset or recreated. It's safe to pass null. + Optional state object that you pass into constructor. + + + diff --git a/TYTD.Api/bin/Release/CookiesTxtParser.dll b/TYTD.Api/bin/Release/CookiesTxtParser.dll new file mode 100755 index 0000000000000000000000000000000000000000..a3014aca43a518cef2fbe62a66a1327c16757272 GIT binary patch literal 6144 zcmeHLU2GiH6+SaN-d%5;h1rdr|6~#;)IhS{*eNB@6g%E^*wlZ?ZV1q#cy@Pe56sSN zXJ&()&?;0^X{&-NQTpHtiB?q+Z6BaNC{!vElu9j1P=AoB(l!bzMSv>t!UIrJ_d9oH z?M)m?k@^OAJ>Na&+;h)8_uPBW-0|q`-=qi;DR>qZh)$#CG9d83!$~wJH~%6@KWjg` z<+L<%c1vl-^t8I`OuKqbtLV1v_*&V}+=i{0ww4<&YBi^7WLB!400T59qs)q-@W_`Ae{*Hc_nd+^9I3as$QLX6exc*7VW6nBoE90wg?P%|E)`Q;MedEJu zXkUH*7KCMc*XH(zoehwu6;*k_+?d(y_F}yFHxPJM-YDEvsB+_wJSwF8T8|KsPYP%X$+q`awx2rK{ zo2cW?c2-M7)r4~usF?E!;GUZn78WjE3JTU@B|ZPAU@i6)5A2h|-NAe9*zQa=)1U3% zwFeCLj|F@WLGAt$(F}rQA!^-4-!<)Nk2PM55#5Kn`*4wN#o6Yq+`a#BA%}Vf{Cfy~ z_dd%hgXaQM(*904-ph|qaa^g1eVn~>ZfbFWl{ai`FH zLrD5T^BhI+F=vVH#e(gLj3|2qH=%Lsw`pEJ3;z2d_oVzslIiUx7kLR0%WerYe;av4 z#8jd|4m}+g*reO(_J~9(5c3Bn=xX4Vv`gR~frA1I0uKtjO`tB&6gUTrV!cKpSJNsQ zfVXp0r_a#u>4=h}KhtxF)OUsE%M^p;WqOcC>2*jBLOxALXoIlu1n?euhaN|(BwdJn z8F+(o3YbzJptTbFCP|aZL$pOYL*Joi$csDze1v{LUqjy?0iU9u0?$QG!)BeHrYGo5 zIY${O&ai8Is)t`6L=#X0}jzV@U!#+utZ? z)JF|cP6qpuBOR1p>_4%9A^#llJ3*8}-fq+kS1((}vmOlt2E>|cbNtia;8^zJobX74gctH!?MQoTEHCkD>>aaN+x(VGGf{WdC)2vm4<6j z(AS^|-Sxm3<;L_hTN?C{56TVSph3?wYGrG#Wcsb*lI~)#VO%1NyB+tg<@&>>W!z%8 z9_F&Vv0zU*ZcXQj>el;e4LSCdIo)uD-f|;3!>hPvosBFt4mq{DX^9?(3`?ICl(*F0 zoX&)cHK_Q@8-|?voNG?cT(+rJ*X_BbK8G5%kI3?v7^iGnrr**Uu5PH538#rHOF^=w zDTHW3_h-VD^h&e7SO+&#wJhQQLebD`Vp;Qcb$lx1y+9lc(A+zRjHz(%1gpvY2fbjE zEbXhHEwFQ$R_-+B_`^=auI6VehKMc=i^Xc;p~XuW_$W59V25UOmnR3Gd9xWVm2ia$ z$-tAPNwyvs+Hd&bVZ!mDOocIwU(VF0ZO8M?ibun)Q#)*%v%H_NgB`o-HPxD74mN<{ z77h29SuwnDQzPs+bznt=TVoT7E)Iz&4oQBtZo23bda@KnPb>*fH=y#fIOT9p#EHhs zcj6E?dyN@BHP7Jq)D#XM7383$#Wy`=s*dEh{l8br3|dO_QZ$60NDZHL;G) z)L}MqTRgcjnM}&+9m!N))nS6gqIUr!M&eOT+L+vkcU2^r+_0eymj~D&DUoc$Wlc}O zoO(x0Q(&2GOOhdy`SdRH2=u&eSM|NhX?9st}jL51mc? z5--VJM_j!==GcqJqBP?=cY6}_g7?LB60OaQX#@ps8z)K z!OQrwzEQ}O1(zE56`qsSFz5Jk$$0=gb;@ z273F*azuj&HfO%2OqxN;^xcw))DdyB9n*bn(&OhuZn(E z;r0!*a&cU?XQS^JYW9K40a&rY`ywCPurdN`IOC#CMc-z$a_Hf~SDt$v`b)9lSuOcr z65dY;9|GUmRu;Kx$<{4mPF{WBl+WE%74`!n0SSfDe+T)$Uqcr2jToCOK z>%|4q*C{m9My;|U`I{{az?@IL?m literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.dll b/TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100755 index 0000000000000000000000000000000000000000..869ac1b86c577fd83a55702457866657c614b4d2 GIT binary patch literal 20856 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 literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.xml b/TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.xml new file mode 100755 index 0000000..cb1744f --- /dev/null +++ b/TYTD.Api/bin/Release/Microsoft.Bcl.AsyncInterfaces.xml @@ -0,0 +1,223 @@ + + + + Microsoft.Bcl.AsyncInterfaces + + + + Provides the core logic for implementing a manual-reset or . + + + + + The callback to invoke when the operation completes if was called before the operation completed, + or if the operation completed before a callback was supplied, + or null if a callback hasn't yet been provided and the operation hasn't yet completed. + + + + State to pass to . + + + to flow to the callback, or null if no flowing is required. + + + + A "captured" or with which to invoke the callback, + or null if no special context is required. + + + + Whether the current operation has completed. + + + The result with which the operation succeeded, or the default value if it hasn't yet completed or failed. + + + The exception with which the operation failed, or null if it hasn't yet completed or completed successfully. + + + The current version of this value, used to help prevent misuse. + + + Gets or sets whether to force continuations to run asynchronously. + Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true. + + + Resets to prepare for the next operation. + + + Completes with a successful result. + The result. + + + Complets with an error. + + + + Gets the operation version. + + + Gets the status of the operation. + Opaque value that was provided to the 's constructor. + + + Gets the result of the operation. + Opaque value that was provided to the 's constructor. + + + Schedules the continuation action for this operation. + The continuation to invoke when the operation has completed. + The state object to pass to when it's invoked. + Opaque value that was provided to the 's constructor. + The flags describing the behavior of the continuation. + + + Ensures that the specified token matches the current version. + The token supplied by . + + + Signals that the operation has completed. Invoked after the result or error has been set. + + + + Invokes the continuation with the appropriate captured context / scheduler. + This assumes that if is not null we're already + running within that . + + + + Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables. + + + Configures how awaits on the tasks returned from an async disposable will be performed. + The source async disposable. + Whether to capture and marshal back to the current context. + The configured async disposable. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + The type of the objects being iterated. + The source enumerable being iterated. + Whether to capture and marshal back to the current context. + The configured enumerable. + + + Sets the to be passed to when iterating. + The type of the objects being iterated. + The source enumerable being iterated. + The to use. + The configured enumerable. + + + Represents a builder for asynchronous iterators. + + + Creates an instance of the struct. + The initialized instance. + + + Invokes on the state machine while guarding the . + The type of the state machine. + The state machine instance, passed by reference. + + + 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. + + + Marks iteration as being completed, whether successfully or otherwise. + + + Gets an object that may be used to uniquely identify this builder to the debugger. + + + Indicates whether a method is an asynchronous iterator. + + + Initializes a new instance of the class. + The type object for the underlying state machine type that's used to implement a state machine method. + + + Provides a type that can be used to configure how awaits on an are performed. + + + Provides an awaitable async enumerable that enables cancelable iteration and configured awaits. + + + Configures how awaits on the tasks returned from an async iteration will be performed. + Whether to capture and marshal back to the current context. + The configured enumerable. + This will replace any previous value set by for this iteration. + + + Sets the to be passed to when iterating. + The to use. + The configured enumerable. + This will replace any previous set by for this iteration. + + + Provides an awaitable async enumerator that enables cancelable iteration and configured awaits. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true + if the enumerator was successfully advanced to the next element, or false if the enumerator has + passed the end of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + Exposes an enumerator that provides asynchronous iteration over values of a specified type. + The type of values to enumerate. + + + Returns an enumerator that iterates asynchronously through the collection. + A that may be used to cancel the asynchronous iteration. + An enumerator that can be used to iterate asynchronously through the collection. + + + Supports a simple asynchronous iteration over a generic collection. + The type of objects to enumerate. + + + Advances the enumerator asynchronously to the next element of the collection. + + A that will complete with a result of true if the enumerator + was successfully advanced to the next element, or false if the enumerator has passed the end + of the collection. + + + + Gets the element in the collection at the current position of the enumerator. + + + Provides a mechanism for releasing unmanaged resources asynchronously. + + + + Performs application-defined tasks associated with freeing, releasing, or + resetting unmanaged resources asynchronously. + + + + diff --git a/TYTD.Api/bin/Release/Microsoft.Win32.Primitives.dll b/TYTD.Api/bin/Release/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000000000000000000000000000000000000..8b69a69bc7386681c06c1c89020ae8ccb11e19ae GIT binary patch literal 21216 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 I47>UN1NEDeD*ylh literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/Newtonsoft.Json.dll b/TYTD.Api/bin/Release/Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..7af125a246d180e71b9c4a20cca73cc44bfa8902 GIT binary patch literal 701992 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
    7rCKmBC%7uHU4 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 mQk4kD+{>M`5sj*hpAXNx5sk*4NaVkupaK2V$J + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + 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 exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + 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 exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + 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 exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + 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 exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + 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 an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + 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. + + + diff --git a/TYTD.Api/bin/Release/System.AppContext.dll b/TYTD.Api/bin/Release/System.AppContext.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ccc058f3999c0f581348c6fed59688ebbdce2c0 GIT binary patch literal 21176 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 Ph>-(6jWWypC87TVLfdgm literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Buffers.dll b/TYTD.Api/bin/Release/System.Buffers.dll new file mode 100644 index 0000000000000000000000000000000000000000..f2d83c51416e90dbc31154545b16df3b3f7a7909 GIT binary patch literal 20856 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 VSA1A~Xq)uh0^wu(F;p2s{|B2kf;9jD literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Buffers.xml b/TYTD.Api/bin/Release/System.Buffers.xml new file mode 100644 index 0000000..e243dce --- /dev/null +++ b/TYTD.Api/bin/Release/System.Buffers.xml @@ -0,0 +1,38 @@ + + + System.Buffers + + + + Provides a resource pool that enables reusing instances of type . + The type of the objects that are in the resource pool. + + + Initializes a new instance of the class. + + + Creates a new instance of the class. + A new instance of the class. + + + Creates a new instance of the class using the specifed configuration. + The maximum length of an array instance that may be stored in the pool. + The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access. + A new instance of the class with the specified configuration. + + + Retrieves a buffer that is at least the requested length. + The minimum length of the array. + An array of type that is at least minimumLength in length. + + + Returns an array to the pool that was previously obtained using the method on the same instance. + A buffer to return to the pool that was previously obtained using the method. + Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array&#39;s contents are left unchanged. + + + Gets a shared instance. + A shared instance. + + + \ No newline at end of file diff --git a/TYTD.Api/bin/Release/System.Collections.Concurrent.dll b/TYTD.Api/bin/Release/System.Collections.Concurrent.dll new file mode 100644 index 0000000000000000000000000000000000000000..26f10d174753ef8308626f7ce37ea6d920fc9b6b GIT binary patch literal 21224 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 Ko~X?b^#1^EU-4N0 literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Collections.NonGeneric.dll b/TYTD.Api/bin/Release/System.Collections.NonGeneric.dll new file mode 100644 index 0000000000000000000000000000000000000000..9da235aef1ae7fd994e44b35fd66d8b584a171d5 GIT binary patch literal 21224 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 Gp#KL|FYKHE literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Collections.Specialized.dll b/TYTD.Api/bin/Release/System.Collections.Specialized.dll new file mode 100644 index 0000000000000000000000000000000000000000..fbd4fc7a25ea3301da536543dd15aca16c3f6150 GIT binary patch literal 21224 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⪻16Z@=W=D&8@c&#jX5ke{Moe^imQ& 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 WLh0qWL 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 UVi04+n`VbDbHim*bh8=yU$M#MLjV8( literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.ComponentModel.EventBasedAsync.dll b/TYTD.Api/bin/Release/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000000000000000000000000000000000000..37742d475238ae8f5727c73142fc5d8d1e90c404 GIT binary patch literal 21768 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 literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.ComponentModel.Primitives.dll b/TYTD.Api/bin/Release/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000000000000000000000000000000000000..b0c4b683ac068d9552c2fb048cfd9226c762da1f GIT binary patch literal 21752 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
    bF?P#w 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 ITw{m+4+Oz|%K!iX literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.ComponentModel.dll b/TYTD.Api/bin/Release/System.ComponentModel.dll new file mode 100644 index 0000000000000000000000000000000000000000..8e2d8297527cc39cdd7200eac4936ed05044b8dc GIT binary patch literal 21192 zcmeHv2|SeD_xLko>{&`AS;mqj8PANpkbTJ-B1Mduu`?QDZDT}e(PB?!siaM4QApAv zdz6%9t*DfwLg9a(5qW!i-|zeV|9p{WN zLISZqfmkCOdu#xeOu_N+aLIfJZEFlcmM9iTui~2XY;WC=6qXwWLl76p;h4!~QvhEq zc=f;wLHx`(dIoPK1Hqs9M1c_GCkdj!xb$L?s>r_|-|tBz3p|(PA;<=a=z*6NiF|(+ zLr{$_h`U430`S=;2SK9Wi~iCFJBK>6ItNIb&1;CGQ^M&Wy?_%0po}?IfcN|d3wp=V zf@vfq6TwXnylmh_5SsVsff5{z;!gz?nMLlP5P`J_yz?GC2r`(LWJU+T_>l*}4GlW6 z#X`_I&*MufntM> zF~c%uXox~`#+mU&%=ji|Je(OSp&o)#ArMF4&Ok@#zzI!(z7~Rz4O$99E=U1{{1BcQ zYB587W@yd~*D*t9W=Ld)J|Gl?wt!Fs!a>|n9S8-Whag-AeFUL2^bLfH%ut0Hu7;MN zaF8KH0HFnB2SR&jHwZUD86X5qg2q995E~j3HA8CzTjW)MPJj;>{@jCQvL%wlGV_MO zC=m+Iq)gB!=A|N0^HYw$DNFob2AXPHQOP0x6kRBgLJy`B1Ia`h8PX39rUZESM_5tl zL^6?1)TaZE@Ccz(AR~%Lh?f`9!=LgaZ??9B5B*o!CO-ZYM+z<2hZ^|%Hs*nzR9XO$ z4ho6>e^|?i5=^4`1R=G455kDzNeuC)>-+l<`BQ!>v5yF*Qvz@Z9BLpXkPc>y;t%~Y7f1G= zEt#!gNAdKhkPy;A=Jpg?s1Jz(#vJNHrqCc9iB6@>Ry6V)=hJh6STQJ$7ViLn0_h@Ru_&$F}W9l zBv6pZT+yuySe&)71J(p=?vyYp%@2Z9QIPVj0_k;DP4>X5}Ramk=(L>3|$kE=$$=q7s)EHJF z;6N_{0X}rB88O&<71l$;6R$~7#j9x%G{`C*TAHe=YGhbdg@RYtgh^`Z9$I9)Ctd@H zJyzz%#KxotLX*aZ_%GKZv_~m{O;h^ik_Qgoy?-`SzGA1i>|g#E|3eV+|> z+!r~YGM@5z;CvBz(yYAwl$Dg>&3oqa#BuV z%S|E$ZLKhfjBN~CaG0g{X|(t?yRiqwW!*8o3{1;f^xAc6Z?8jenALj_9uozar2{=9 z9c;dK_D1%C<{1Trs-t@GUcn!=uw*b95M;c{Mc>5@p}vcnCc!1x#lt7ih3et!LZf)P z{BnX_kR2G0gMVF$3nF_Uc>E_l&%Wy{2+p68I2MWh{+ZQnW=h-uXB+wZTM>N%p@3i# zl}4d3r592uAu6+)3?ii=2T)1`xxt{E2+=`3DoD*d7cm%61qE=TgIYcy z-|H8Ux>=Aq@Z6s&H!6Tg1tX&a21Ov!AOs>ZvL7RIV8WWEgc0Z= znAz3`)csNG-@|Ve(40|oG;stlX#naE8mfX3s)LsRsX-b*n?=$v_#%%3Bm&wZGlI~9 z2EIfv<{zW`>vX~adigWy#ekFnOiKXIiwO;(MG&AjGJ9T-H|Pn13IL7%I^A%fHWt!n z!pF{o6AW@`Od2A%hk_Uxj175QnB%hfUKimSWL&d!M^Xqk{5y31F}@j^*#g)IkA#5v zqtBz*ulV5tz!L}R7z27^0Tu{PApM6i`2%du&;a096!cq|KhNYJ%_A1H4FRcCFizna| zO;A%6eAOT=5Yqs#RX~{*$X5k_Y9I}RuL>9u9&nl_NRdFUI-|Gdzj|?GRr5zlTWy?2OHTgLyvxKbrh+qX5&!g+@a#L${2L zb48q4+!r1cJ35=8dk$osMx#)8ZkUseRgsqkEy4=HmTX*#Y$yzhp@BwWvUOo?c*(pR zKA4jQ1!ZG$(NPdAIj{24-NYVFt_DY!);M zjTTS=6L6nwCDb9Zy+n{X8TVnHImA$`0EI9nMl9ZmEQ;iC2?+l3w1Ss}C6IC!0pTCz4&XGcWKSms1YvCr z^2KrN%25KpCE4v z4Qpg?j5W5mUS)tc&`>f_*Dz5sF*YRNm&4LCBNF}Ph`yh#VFpTSK81lrhlPRS0}O%U zLNkEvD)*7o(edjE%kGyDGh9=u+A}9bq8~pC)?0NPzvPP?hgDY%Z8&ee@i=T-{<77o zd`svZsnbVyRo|@JM-|Jpt=M>`sdU;g$&6E#otVWYefe<2_Go$GJ?v~92cO#{-_}VT zT7P`+a4X6G-q!s>4a4u1J=2uE2GVzYVZVwWif^61`0m~4Q7H7ykffNjWWvjPd;MPO zz>CcK>X))KA3BOZEHq~6BFlMwSEOsh7>mA`xXj0$Lh6@{5AES~D(pLb<*_CGYsg%E}~~ zKQ3VQ6pkZN1C)dOe2`paU{6OZM#0K+(}?gTlPv*P;y@L60~-fem8`7nC=|vLUJIMe zreSoP_V*6L!oq&l0WbmmF=RR{fZ)3vvjFCr16bBZKZ0i=QF5NI? zrZIS+p^;li{x~tbiri@6YnY);D88i1xZHF5>0XB$%|-i75jy`(c?U8S-B);fWpVC8jv+YO6Jrzm@)kXX}^u_Hv#8eaT#n){w zev^6iO!+bW@MW`+TmA1(H2Ob!$Sbv6=p4(!$8o`0SiN^mL0lB`{3qwE}=eFsLx6*Ry?HidiIO2*a_9x8|xgtrkqA?vFXA~ElF^BD)!mw zvrMT8U(fW(h<6bnC>2m_LGv4^m?vi84!zI(zA<|<7da#O}XrK zxFy$UshIkvBU-dBPBEf3WJjr2jBH#*o3g0xy$xrQs3~7Je#^hRtg3pza*4H+&ecth zE;}D@{G@cf>=b7u+qQSvPAINHTG zIcMZRyVQ>~YqhN4QGSW(trSR&k11HEA*`R!J05#!&jK@gN3ML|;l)UBoMSTVHHI@(Zf@VqUNbYqL5)F zRRTp_iKwndRw8SusKHulTAmb`@*4?Qw{W1g<&w|_)O`({ijdGX%S@3516Brt&kfd8Qo$<$7KWKJaO13i0y5AV22yY~4P>D1Uz34<0Gs~P z(q#%fs)gT!zE=j00VQV%A%Q;Qt z!>=CF3iotvk(x~Gp6FKUavOObM(%ogkqzQJYjPm((^Pca%EO8wcNfY(ev#NKDt9(* zZ|3b@_NA>O-iUnk%ss^F~YcEkAW zsm$7Og<}nxP1kBzudn=idwHcdPZ!@-1Cf+_NfjIY4sfrVczpF$QgMljd@zg4&O8%F z*7+;yVWGQW25UJGcqe8A9v4wXR)ndp;eR3)?8em4xHu2VCLA7FNk%OdVgb7wekr0j z&dcPS+x+lKu;PpilbPG`uy#~%m28OIS9to6h;#~8KZNd0rGXm`rdkHWnksk#0k5S( z0Md-`JxM^4|D>S(SGrX(&DmusOs*8mbjM;1GD7YBb(ghK>+3$e_M1u*;_vQSMUN4= zs+>)DJN^8YfwlA_8q}fY#FbEc0c$=w?0wG4V&BP%2#YO8Oxd4KF7G-T65n(t*l6eD z=#GySBkCvayBI$!Jg?I&@0})+f07pL_+d$M|D;+nExRq$O+3svCRS6ZId~K6buYVp zCyRZQpDyK|Iz(6K4OMpNTnsypwe0hlth?`Kg15aUC(y44H_;UM<)!XvSnFgHbPhD+ zXtKq+SUWQ0SFjSUT0FKPy=qbN_+YH_>Kq63*(B%KgH3y7?FS;ytQ|3F($LmCb}7u| zJ}zBYFC}(bYp3q6=9o!2-^trA(BA=g__2&!Ytr3PkjASk|1ia7#{`$P7ZPK zA~w$N2NOXQhLs5z=)ZG$Xhdb3e1NxZl}$|PNq1j;8c#i?UEZz)FP*Ej7>!vV&IQbP zA;5%S2R@R$owA>7}uV z%jUE%y07(j*7ht|;!}4r3#&B2ZF}3XL8)(TOL@?%(>%E>Cmp*>6D^!ZQVg;_e0=|| zFHS;LyVNmr*j_qz#R-P!;of9+v5{WuvAsF90|F-xTGuRVNus5!*b;C=WK49}zRjy% zYT8AtA$MpU!GzF+Cac~v9Pcl?4PkZY&f zCdtP1dz|lLdH31`@CsP#Y*R4HqCNQNUt9GyD9`DT)Ar&h;P#AD~Uz6!|c zo$nv-DcEUJ#_n!Pao4lHXz6h~ zR>{cT6n#0L>cdGX_xH6Qk-Wg;k~N%rAt~@DnQQS)zNby` z%9+plw&*;Dc6gXRXpFyKDm=kU+gFvRQ;62{o%T7B+RJ~M|B{9+M_aWH%wS^&^85X) z{1);?4EEp>>YtF`um-FOd_)LpDzFwJzwyi@a2o;1f9|~hucY_!9RH%O4zoimw)x?f z_Ehxt-N{%dZF|14Q`lOD@7;s^2bSmQFm~Y^_D2pWg67G~3=UmLcY$S}LVg2VE8Zrs z^L^pPqz@<5OVp{z>^?d&>Lt4J+tyd{Vy|CW=jBvM+t==!FmB>(-dxyx(EyV>e#-x_ z*JJr-CiWNOnqSD9;N;H5*{ru)(9g2+tM7pWaNzEb&hXKR9c^hP1CnVw###hEa$L0! zu)Ab@;J6vI*3@&MoPy`+wEkAM=(V}yyYd&BF6Lw$-!-&8dKa<|S zJPH3sdh^c-VIaMMJcr=ubVRmFW1Zp1|Ci40fY$tJiPbJFM(Uk|m(GWEG)AnmLKWfYTQ&tO5IEa-V{1|=?%|@` zy#XGjPUt#otblDsXQW=QQ(57LOwk@ORNT3;@R2>uZ&#z<_1;M0Vy)R{);nx3*lBb2 zQ2(oazK^1+UM7#QDaW!59$X!bVqxM(S*Ia*m>N_W=r zzV>igBb2@eyQY_2gfL!@UmJ?oQKWI#ybjWtj^z^Qy2VA@Km53K$s6lEJMX9|ZqBQG zQ@)+sVCzGBn&dmUwk(|DvI(_>YcX%j)5YnZw6A$?C{a>=H69yRzs_;sXi&2MIW5bF zpCc;I2uFG-yw5$Npvo2|;&ER`JV1gm%zbZVS(9POi}APHFZZ1|O;;8%+!smzR`WwDPJsZZI7cAsKZ{5cV7}ShQKB=9rXZv*DoPVA-fy{mO^!geXhd z6=pJS8(%xVKlME0XzeO$MYJ59ZQ;96$;u;)DmjNMMZP)-IibW$fjI)FD$ke>FQQH+ z68wv&y4Ka~mA>y;aa3&gA~IS>sn9v8v|sYY<%_kXOW_Wz5A|`j=aMg;3_n|vof;zY zWwze!)E3GX@xVf7qtE@x1W-Qb9x+oNb7~17&bkexr``>q9Y$rE4%G?e^0RddJ)0 z&GSGkz}v#s*{V^5f8%2J`-NT(F#mm5*5=ea#HKfYZv}={3z_C(9+uO z`>wpKA9lkoH6tu@^_y)g-yBKQRTNxCTr>R8Xa{+n#hS!VrYgGq-ROR;CVJr4(rvJU-gTIGWDhATI8%SIJ?>8o&&+%#Yb& z!!yu=AZsC$ANT)b`~R;mBj$0VD=hp2YZg5BT!I}1cyW%~Sn+(|ra%MM!mAKe2x*}5Y#wVyZEP)6RD&gT_iWkq-;q=!^)rO)eQz1~bevGvW?C+GDp zv<1*9*DT96b+nXUF7vs2=Vs%h7iJf3P_GH3U9`)pi8vn99kU{Fg+;DNZxPKpJTysYIMF+P%m$` z9q(skK%<&U5+Mx#B=wLvN`)kEWR+fO}s0hy>!(@kxu#B zi-xOP&AeZ5HnmmdUsx|^e|fWPY>A%0`thcU&L{y5qopuIM(D=^#h~yE88(oIo})E# zaV7l`W=OvWyo2XMNa!AChN7@w&|ta2E(d%mi#OU9 z<6O5!A8)E2THF<>75A_uIYaNcw)@o1Yz7aw%wj_UrF!s(6&Sibm@pO@Z952j>%nt- z{;YBXly>|rmR5OK7HCi4GE3rz1?6WeFcvZXGL0wSO~C}1@cmAUX$od0Vfx>K-+$Hg z8=qJzQ_Y@~85JS;P1gMzEq>+1XkJ=;s>#*7I=2MnRVp~~gW(g~3M3e)%aL^=3d|Yt(zzoi{6b#h6DC=o^tSK1;NBsDOtt5lK@QZ_Z_gWZ!sb;s zlHiO5b)oma1g8jvJ=jy0e2*g*J0yNu?ZcK^-E_zzvE|vpH*Mil`zFr2$LmyFleplK zR(WSv(SZwXg^H~XU)7#AY&rB&eERJczq*|qq4aM4b!HDgKs9ETdF*O0oOvdG$V}NlF5aNZ`jwy1S)KbeyA-d z1FOI=o}ft5gjGG%C`2VyEe};-23FBj(o|6=D3LYQ@Sa2hK~2?@^c&NOSs?j^Eo&>| z%n}U^smlSUYeUc}e|!=4%X=znP%!f@46yT@krv@!HzZJkHI!gYrul?8J8ED)Sr6O8 z>t@ryd@^fi{^Jg2@52713p&s$X023c;2JjXZW=6S76wqK*@PrIoNn3HNZaJD3x7N` zHrY_|=;nvi1>2PvmIq`(CekI>PUy{ z2V5BY0BuapNEEH-Oli&(HG&IH3f;SIy6Kam>Yn3C8#Jn|MGK{B`5W39`~_;m7o=*E zWKKoz>5>!e_Y_Oe#Z5c0SXBkaWE0+8Dp9s|bY&|N+*>0?x*EKouPsuRZ$+wcJ|RXo zRoBTpOgdqzi2q*V3l70`cN90`H);8%o<0%pmnu*FaQnjR3gad99@f#99Yjp`r=JYC z87OymOirR^2wT8i^r4YEGr8CIs839e`r`oXRP3Ya>e4iI&MBS6Rq2ZhZpPKWXH=bC zFJmZt*(^3Zu6exW=$fTZ7AL&gcidYh-g|Yyy(nwhR~(X-q{*zqf>tV*9o=mnuf3+Z ze;U_W9=e4)=^D+ZsL-M ziauY21K#?YpB_vNt*PL+J+=DNgz2yl$K4D?eMlM`v^MTUDcjV&w-HgfevB-)>jR!Jzk>jlb_iH?icx4E9K19ru{E ztneOaVak4%pO^)Xj{jSPE3kgg2!Dki!vBxW=RdXqJg~xO5@0p085@i`Gl>Td4!{QU zPj6EU^zWS%z;AVcmI#~_z?wTdJVE0Z#hq^tJj39(QoTNMWrO5#gJmoH1~=NCDP_|X z!I)p)S-n8KQ^W7>qIT|K&08647i+X0p%&u}S`&C8$h&tWyUX|&9y8Ax^xoXkb;Q1y zYh`uelLEyHk(`B(Q=MzwMOX(tLk9?UvWt{oo#n7?Dlxk1+I}0y5^~o2V_m?pGBNvrA+oN7=dmz-pxnDjV)x)tw@=maym) z6&D`T+|hD0YUL+u$Agk;%d52l$vf?@XYrk1D!r?2^g2u2zAtXW&32W0lXsWjl%y|r z6PCYHFDI|LJY8$8degR|Ll;D)^9wxR5+!_lYkFR zYooI3>BaaZ&yQJ;rd}*J$@Wig>28bPJ7HL@4&XOts^8sE zAU;F0{vI@?RcQPH!)uFKt$SYQ-@`wUPEdt6A{8VsU?+lYvaPZ$;>`d04FOobVBG>E zKDg_e+w9z66*mHbx!G-=-Q2)tX9t7B>TDWpb_Rd#uHaAL)8Xjj2=Z7=bQ&C;3`ZZF zv(e#LfQtaUX0|&tN=W6;x3cd)rikC;@>&rO^w5f{UlJCyRX+s+{yHAhX@f|YdhUb>Iir0!XDD0 z41?6|EfEV2R8ib;D|N@JX%7Norf#em;Hq6+X6x;n0=#l zvS^bPw-WiwP86^%I5Olt;f+hlUa@9{-v)D%1gB5n#`M(wn9-X_A59dWe_P#Lq4qv- z`GpsSazo9XA9)Ki(<@#7hV)U=@5)x zXS_j^utiQ}XVIwK*z=XEus-R<&I#Uu)cmXTYCTrAQ>Yd4x{NgfR-W89ORPTiB<&QX z3T`*f4}GDxf|6J5YUdGGEk;sLi|cy&aco2=CsVGc;bdC#J6Do^-zN5~-MVaHY!BFq zLL?U7AQCSRKfAjObE8ZD97EJfn%S5xVzPshe8{jOT1^}Y!S7kT?yBO^lCV!EwF+B@WB z;l#H+Z@8mg`>Zbf1`lB@_jh%L1dtBuJUHrTZBrTLB$X4skRTcPUZ1OI&DYcQCtRy? z;*U6OakMrwzG-m(Na!Z6C^Nswh~rfi0Rg`E?Sch(B5fP+48akYA^47IJV^PcH?A2Q z!Y|H%^NyC;(Vf7Bk!#jCwG@K~25{8>zoAQc?l{be!AoJV*W7nEdOb71cQuUf(O8SW zxP1$29xBPTy+4O;&bU-vqhTk;W@Dk`)7QUY?RmnphwhrrBi-mJjSm-xd5 zotsp;``sN{!#f}P>8^RADe1d3C!{fmyT*$m!hV6WK%JolVuRdvqj6--qf{nO6! zKSx!Ezq`9=fRi|0MO_VX-Xo|1RUIT%ktDqBZ#h)R!ZI_53b7xDir>0NBL@i>FyHSL z_4(e!1!6qqVG9#iVc&ieNc%Lg(Zl*B~B-L9dwI!C~7)vd8q34Dc1)?fk64YBI9vUWnIK?CRK7` zGG2>lB9e)P7UTq5k0RH}FbSPur;u|Mi3V1B>mKlBvFUp4{N#C)CDmxh`(}&Dz!#ad zMW;t1S8(BnpIWmWyb{l$HV`g)aWJDn`<1fM_59IiYH}4y{ZWhWy zvD!#k&020=0!sD%siOLbw8|wBf8e9x)@>%s?x=Wgj15@-XU-~rT~U4X*|9EZAlJpi z`+-jKflZGaGlg&eSKadF6iLJ)11rJmN(2?AlKS7^miGs+fr6UNR8SF*q39Gi`VbtQ z^cx*D8rGRpF;PPJKh#leEzD;WR6|>PW%A6=`~QN5Y72g8^+Q8NeoOe5G*tGN@#}bc z?{=rJiQdAZb2KkUl3McSRQ)IXjV9LKf~g6ofTeKBtvjCgeY-xr8V;|xcly}!zVY%Q zKL;lc#dQp$MPIMk@2wwoUz8YHucxPfN%qd_`v7LQlB0j83rVB5nPYk*K`vo@Al({0at1{%7v~|8k?c z#_>TqtMfKm86BIGCznPZXUSURu*ROTu~hfX_CVn~v?{qrK?)0oQ!Uz(cHI-w@;LUj zh(~%?ZXf)mCB&Ay^+|K{yNN>;u5KDyV|Qr_$%-n`#*eMzj_@B|=nlI+*mkMG1+`-P zc!ST9v|EoH4oU8k{d9eWJ8F+;(}VnEM~_H2;{GvTUCUFhInG;YyoX7-xAHV9mz?R* zipc#o`S{!UKJh0}ev2koy$jn9cdt$+-F=?1u;A#Ts@NyXGv1&kc)fL&oz7Sz3{QAB z@?kbBpB~;_^m+3#<;G~s^O6fy2pl`T5`Pz^ zJ+r$2dq4iaYj^nr*gqTk|CKWh)A|p72t(no^7m^J6ffj6Q-9N?#9ah}yd3@BMMemCH(3GU>Tf%eDs9RRS*gE$I8qj}QM zz@ZzQ8$o=D+)M?E8aSvzu=>2_Xgs*Oo^#w`9$vG#U=E}ii%_3?&TO1L2m2Gs%pYY0 z+O?GHXd0fAHPUT4sBdw0ap695xmF(20eh3?v*ymH>Mx|6PuMmp;O3U3|FkzfXv3cL zhBw+@NE+FrD_gwjpT7i@nY9Y>lgB<1Qz^K<7aPgNFQ3WyqRw@q@{WuK<94uTzMZlV z&$1jRxUvYzO7#~DODbq~Jz7wfrag*Q-Bn!SzI_#|<&)fc&gKyt@de6OLkjq2dE!-e zfr>9=$2@2A73<&baj)ieU0L%@>D0#T9N%Z}8^vWxMtX!Bw>S?~QHtb))1C)da!ZL^ zDZaYq>)!P%vy-4RI?I*FS0X##6-YMcDdgz(Z}a6XeMs0Km#MuWUQQ3S;@#B)e2dCN z9{|spPhjzVU@pGH|Ljq4#`N_I&1Syoi-97*B6AiG;L*kN8=D6Fvn?yN^F8I6==yVa z@;Mef8z{WQAbuGe&3`3@>lk>l+jBEF9Njw)0D1vFx&@AIf}`u<=pxMGUoBtYXbMM1 zo!Id|kyyY>?NL={Nbkdq&n({`Dd)RONb>Ahe`7x9gKY=#3|bnkI`YOcKI^R8;jPz- z4WH=WAq*NdFU^kU&7s{UHN4W-YCd}Z(n>wC3X7lxsV_Czyp|4Ygk8@;(ubj$4J9&*AcX~HeC%%3Yb@4URVBtN2X`Qsm zC)MIN?P=L&J@1_|3wd@P$XZI!;pQau99J#*&|1iT!#4urlh{72|GI&<<6dp?UFEw~ t9H`xUD}&Rp5pMn!ikol9#&lB3q69o#*X}IWU%rFxqU6_Wyi>Oy`hOC_!Oj2x literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Console.dll b/TYTD.Api/bin/Release/System.Console.dll new file mode 100644 index 0000000000000000000000000000000000000000..fe61bccd8dbbc6c23b468472adad37f94bc79f06 GIT binary patch literal 21160 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 literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Data.Common.dll b/TYTD.Api/bin/Release/System.Data.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..05e3481bb71da9d421b0cf25ac3c3e95f39a8f10 GIT binary patch literal 154448 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 literal 0 HcmV?d00001 diff --git a/TYTD.Api/bin/Release/System.Diagnostics.Contracts.dll b/TYTD.Api/bin/Release/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000000000000000000000000000000000000..98f40ebc676aa39a40d9b332c4b4705b5600a92a GIT binary patch literal 21736 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