diff --git a/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db
new file mode 100644
index 0000000..4f0a02c
Binary files /dev/null and b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/CodeChunks.db differ
diff --git a/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db
new file mode 100644
index 0000000..1f70f77
Binary files /dev/null and b/.vs/hMarkdown/CopilotIndices/17.14.995.13737/SemanticSymbols.db differ
diff --git a/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx b/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx
new file mode 100644
index 0000000..ba035ee
Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/0e842505-b547-49c5-85f0-77c5e3d51362.vsidx differ
diff --git a/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx b/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx
new file mode 100644
index 0000000..c1cf312
Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/3fc82320-0102-4af3-888f-3fcbb45626f7.vsidx differ
diff --git a/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx b/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx
new file mode 100644
index 0000000..f8d8b39
Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/4ba33e62-f62e-428e-8612-7db0bb21b0e7.vsidx differ
diff --git a/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx b/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx
new file mode 100644
index 0000000..c86fe4a
Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/9493309d-d9bd-4945-a92d-bab840e7d581.vsidx differ
diff --git a/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx b/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx
new file mode 100644
index 0000000..be70181
Binary files /dev/null and b/.vs/hMarkdown/FileContentIndex/b3e8eafa-0473-466b-b3a6-769e4b98e82d.vsidx differ
diff --git a/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5 b/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5
new file mode 100644
index 0000000..5abd275
Binary files /dev/null and b/.vs/hMarkdown/copilot-chat/8cc87631/sessions/9dad8692-9b2d-48ef-996d-4f7381fd31c5 differ
diff --git a/.vs/hMarkdown/v17/.suo b/.vs/hMarkdown/v17/.suo
new file mode 100644
index 0000000..f4f91de
Binary files /dev/null and b/.vs/hMarkdown/v17/.suo differ
diff --git a/.vs/hMarkdown/v17/DocumentLayout.backup.json b/.vs/hMarkdown/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..11004b7
--- /dev/null
+++ b/.vs/hMarkdown/v17/DocumentLayout.backup.json
@@ -0,0 +1,36 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Calismalar\\C#\\hMarkdown\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+ "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Form1.cs [Design]",
+ "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs",
+ "RelativeDocumentMoniker": "hMarkdown\\Form1.cs",
+ "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs [Design]",
+ "RelativeToolTip": "hMarkdown\\Form1.cs [Design]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-08-25T23:19:08.49Z",
+ "EditorCaption": " [Design]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/hMarkdown/v17/DocumentLayout.json b/.vs/hMarkdown/v17/DocumentLayout.json
new file mode 100644
index 0000000..f397a5e
--- /dev/null
+++ b/.vs/hMarkdown/v17/DocumentLayout.json
@@ -0,0 +1,53 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Calismalar\\C#\\hMarkdown\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}",
+ "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\readme.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|d:\\calismalar\\c#\\hmarkdown\\hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+ "RelativeMoniker": "D:0:0:{A8E10C05-F985-4702-8AE2-B5D95E9AED83}|hMarkdown\\hMarkdown.csproj|solutionrelative:hmarkdown\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "README.md",
+ "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\README.md",
+ "RelativeDocumentMoniker": "hMarkdown\\README.md",
+ "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\README.md",
+ "RelativeToolTip": "hMarkdown\\README.md",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAABWAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
+ "WhenOpened": "2025-08-25T23:31:10.806Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "Form1.cs [Design]",
+ "DocumentMoniker": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs",
+ "RelativeDocumentMoniker": "hMarkdown\\Form1.cs",
+ "ToolTip": "D:\\Calismalar\\C#\\hMarkdown\\hMarkdown\\Form1.cs [Design]",
+ "RelativeToolTip": "hMarkdown\\Form1.cs [Design]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-08-25T23:19:08.49Z",
+ "EditorCaption": " [Design]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hMarkdown.ico b/hMarkdown.ico
new file mode 100644
index 0000000..31ae85b
Binary files /dev/null and b/hMarkdown.ico differ
diff --git a/hMarkdown.sln b/hMarkdown.sln
new file mode 100644
index 0000000..f5a3e60
--- /dev/null
+++ b/hMarkdown.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36408.4 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "hMarkdown", "hMarkdown\hMarkdown.csproj", "{A8E10C05-F985-4702-8AE2-B5D95E9AED83}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A8E10C05-F985-4702-8AE2-B5D95E9AED83}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {32D59AF9-824D-4CD3-849A-7B796CCD714E}
+ EndGlobalSection
+EndGlobal
diff --git a/hMarkdown/App.config b/hMarkdown/App.config
new file mode 100644
index 0000000..3d9ac87
--- /dev/null
+++ b/hMarkdown/App.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/FodyWeavers.xml b/hMarkdown/FodyWeavers.xml
new file mode 100644
index 0000000..5029e70
--- /dev/null
+++ b/hMarkdown/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/FodyWeavers.xsd b/hMarkdown/FodyWeavers.xsd
new file mode 100644
index 0000000..f2dbece
--- /dev/null
+++ b/hMarkdown/FodyWeavers.xsd
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead.
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Controls if runtime assemblies are also embedded.
+
+
+
+
+ Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/Form1.Designer.cs b/hMarkdown/Form1.Designer.cs
new file mode 100644
index 0000000..3b2a61a
--- /dev/null
+++ b/hMarkdown/Form1.Designer.cs
@@ -0,0 +1,124 @@
+namespace hMarkdown
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
+ this.tbDosya = new System.Windows.Forms.ToolStripTextBox();
+ this.tbGozat = new System.Windows.Forms.ToolStripButton();
+ this.webBrowser = new System.Windows.Forms.WebBrowser();
+ this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
+ this.toolStrip1.SuspendLayout();
+ this.SuspendLayout();
+
+ // toolStrip1
+ //
+ this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
+ this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripLabel1,
+ this.tbDosya,
+ this.tbGozat});
+ this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(1026, 27);
+ this.toolStrip1.TabIndex = 1;
+ this.toolStrip1.Text = "toolStrip1";
+ //
+ // toolStripLabel1
+ //
+ this.toolStripLabel1.Name = "toolStripLabel1";
+ this.toolStripLabel1.Size = new System.Drawing.Size(61, 24);
+ this.toolStripLabel1.Text = "Dosya : ";
+ this.toolStripLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // tbDosya
+ //
+ this.tbDosya.AcceptsReturn = true;
+ this.tbDosya.AcceptsTab = true;
+ this.tbDosya.Font = new System.Drawing.Font("Segoe UI", 9F);
+ this.tbDosya.Name = "tbDosya";
+ this.tbDosya.Size = new System.Drawing.Size(640, 27);
+ //
+ // tbGozat
+ //
+ this.tbGozat.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+ this.tbGozat.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+ this.tbGozat.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.tbGozat.Name = "tbGozat";
+ this.tbGozat.Size = new System.Drawing.Size(29, 24);
+ this.tbGozat.Text = "...";
+ this.tbGozat.Click += new System.EventHandler(this.tbGozat_Click);
+ //
+ // webBrowser
+ //
+ this.webBrowser.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.webBrowser.Location = new System.Drawing.Point(0, 27);
+ this.webBrowser.MinimumSize = new System.Drawing.Size(20, 20);
+ this.webBrowser.Name = "webBrowser";
+ this.webBrowser.Size = new System.Drawing.Size(1026, 616);
+ this.webBrowser.TabIndex = 2;
+ this.webBrowser.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.webBrowser_Navigated);
+ //
+ // openFileDialog
+ //
+ this.openFileDialog.FileName = "openFileDialog";
+ //
+ // Form1
+ //
+ this.AllowDrop = true;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1026, 643);
+ this.Controls.Add(this.webBrowser);
+ this.Controls.Add(this.toolStrip1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.IsMdiContainer = true;
+ this.Name = "Form1";
+ this.Text = "hOLOlu Markdown Viewer";
+ this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
+ this.toolStrip1.ResumeLayout(false);
+ this.toolStrip1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.WebBrowser webBrowser;
+ private System.Windows.Forms.ToolStrip toolStrip1;
+ private System.Windows.Forms.ToolStripLabel toolStripLabel1;
+ private System.Windows.Forms.ToolStripTextBox tbDosya;
+ private System.Windows.Forms.ToolStripButton tbGozat;
+ private System.Windows.Forms.OpenFileDialog openFileDialog;
+ }
+}
+
diff --git a/hMarkdown/Form1.cs b/hMarkdown/Form1.cs
new file mode 100644
index 0000000..c9c1c7d
--- /dev/null
+++ b/hMarkdown/Form1.cs
@@ -0,0 +1,70 @@
+using Markdig;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+
+namespace hMarkdown
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ this.AllowDrop = true;
+ }
+
+ private void tbGozat_Click(object sender, EventArgs e)
+ {
+ openFileDialog.Filter = "(*.md)|*.md|Tüm Dosyalar (*.*)|*.*";
+ openFileDialog.FilterIndex = 2;
+ openFileDialog.RestoreDirectory = true;
+
+ if (openFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ tbDosya.Text = openFileDialog.FileName;
+ string contents = File.ReadAllText(@tbDosya.Text);
+
+ var result = Markdown.ToHtml(contents);
+
+ webBrowser.DocumentText = result;
+ webBrowser.Document.Body.Style = "font-family: Tahoma, Threbucet, Verdana; font-size: large;";
+ webBrowser.Document.ExecCommand("SelectAll", false, "null");
+ webBrowser.Document.ExecCommand("font-family", false, "Tahoma");
+ webBrowser.Document.ExecCommand("Unselect", false, "null");
+ }
+ }
+
+ private void Form1_DragDrop(object sender, DragEventArgs e)
+ {
+ string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
+ foreach (string file in files) Console.WriteLine(file);
+ }
+
+ private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
+ {
+ string file = e.Url.LocalPath.ToString();
+
+ if (file!="blank")
+ {
+
+ tbDosya.Text = file.Replace("file:///", ""); ;
+ string contents = File.ReadAllText(@tbDosya.Text);
+
+ var result = Markdown.ToHtml(contents);
+
+ webBrowser.DocumentText = result;
+ webBrowser.Document.ExecCommand("SelectAll", false, "null");
+ webBrowser.Document.ExecCommand("FontName", false, "Tahoma");
+ webBrowser.Document.ExecCommand("Unselect", false, "null");
+ }
+ }
+ }
+}
diff --git a/hMarkdown/Form1.resx b/hMarkdown/Form1.resx
new file mode 100644
index 0000000..3433b7d
--- /dev/null
+++ b/hMarkdown/Form1.resx
@@ -0,0 +1,2760 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 244, 17
+
+
+
+
+ AAABAAYAAAAAAAEAIADP4QAAZgAAAICAAAABACAAKAgBADXiAABAQAAAAQAgAChCAABd6gEAMDAAAAEA
+ IACoJQAAhSwCACAgAAABACAAqBAAAC1SAgAQEAAAAQAgAGgEAADVYgIAiVBORw0KGgoAAAANSUhEUgAA
+ AQAAAAEACAYAAABccqhmAACAAElEQVR42oz9ebxuV1EnjH9rPc85d8pNIMnNQJjCkBDmUUFBsVXERpAZ
+ QUBkUoRGFH+/bn/92nZjO7ytrd2+2kjCPIMICgoqMomAoIyBEMIUCGRObu547hmeXe8fe1XVt2rvi7+T
+ T+45z372XqtWjd9aq9bacujgzQoRAIBAAAGg6D8KRbnUPw/9N+JWiAhUtXwRD4uUdrR/5g7sbwGgGr2k
+ 69Nn/KP2frT05031O+0GTNv1rmf6rWOo5PN4FYomkmlAaWtmLOO9REyiv/CTr9tzdVzcbb0mMVbm4XRQ
+ JDTIlJ45eXBjc0qk1KbKydtI45uhW0pfrGvEj0ST5DHM9jUjs9m/+T6EHYx0nUSH+zOKENeE1ZjXq1md
+ mPsMMwT+3vR//LqNF2Q0fmpE/U+ZcEVND/x7e0aD6ipseniGZ0ZGGrlI14K5QZKeC8LI2CgS88z4k9ZQ
+ 3zT+CdOr4MpYVGfu74owERyNkYUv0v9ngu0z06DRTno+CZ2a0KAr2/N4nw6ZdKeFG038L0yY8YZZceed
+ UfpaJVsB6ag/q9PmmA9OsF2jwQgo2BQeifFhhjTmtcuTecL85cfM+I2Ztb3CKx9fiZ0x5CJkRTbswmrh
+ GyXrQ/X2LXeloxGrTiWg851p/aIwjQmyvpUF2i+oamLE7H2FFm+PLoTD1f6LaI8HklGpKgQaTkg12izG
+ r5qfn3poes67zPwTuo1J8+GacKsRzDggb16BiSeiwFqdq2tb1TjNLKuIkKNHaoe6VmpA2Eh1IsykA5mP
+ M3Rq5iPm9KO2Y3x15dcYskfo+efi4c7LGTehJwnT3JwFApnhddxEZGQVymOT8kDll8aYhPkHTHkHoIX8
+ ZuC+CHRu2Kw7mgmQGRemOVxPBu1aMnEcM1F08ixfa9G/SncG08g+QRsdQYSSyjQdmoniruhGuqOMTKdI
+ C+GaHGeioUUj4TZOBrVnERYRTJE6Oa052DgTTCZj5sGbMdmgJzkEwXBTxiqsOfqZtokeyZRpwn2qy9LV
+ TUrb/YLOPTeLw4mYwvc0nqJLlYeGjDk+TLrhwFlU3nioc6nXHD+4PadZZsfZRoQQmD+3GUkAp6MiUx0M
+ YydXxgTQZ+dT9TgVTFhaoZphXo3OFEbn0AXrrV1yOiYGTgCqwqxiREJfqgLD7PyHQjvOFhrznFGqDlNU
+ gWl7Y2MFZKdcgb6oUaCOBUQPpSPgbuYQgKM68oCpe43vtDKb6dNsNyd1AproLZCpK0uMc4ooSyTkSZ6C
+ COf5TvQ7Yh3mn60GWpDtrBOeu6/IUWq7TFcNHCAxsUAt5+ttNTcM9+bTkTPMnMh5ilNi3oCMjwk32JQe
+ rQrC1mpG6R1Lvr0yPyEJmQrGxpUUG64Yhnny0DSCEKc/ZGQpV2O4IZKuSZI23S9tQqtUhntbhGwIrytj
+ Np3RyDkl15N/VNbKBJ1IhnPOXEprGvQxiDD5TOZReK6mWgVHtMxAom4W0xBfSVYngT9THZf5xuqlauAs
+ Z1Pceo/MtDEjm+8FIRQaTiI5SXaWGV40hyjagfBJ+OY2fTIyWC9mJtrmeKf87EzeI9bGzBcT9JG8eyGQ
+ dEir4dkfNR2Z69sU1REEj0++Nz32waMtQ1pli5gi5blIWNMYQiUxLMl0VHnU/0sC6ilNSqM0syem2/Pz
+ Sg0TH6WPgXy5k5b1gxW1QLj0o+n+pFNVCRLaYvYrUG+3VIHozApVHAgjhDnkxfJN+paHUQFcyK6QSEHI
+ 05Gin6hOjmi1dho3qKzQhb+Zp1I+kww46k/g9cyAk8+RPBcz93yRg5S+YqZ23lUJzzeUJZLJ0NlzSlHA
+ k0WOGsnSeAtCULqJ+9ci/IljKAhlEj5nnq18/F6w05AQG0YfP0dOVzZbGmTeMo+SKE7CuCnzp45uFmIn
+ OFF0hi24oi323TMGyai5pEvJr3EKMEGmM406fZqfJaBY6fteTkF4mbmydg4sdFnabS0ixriYJnMTLam9
+ 4Iay3P2z5MfmiErPadaLqhs68yzBmolHnHhZQTJEF65E9HK9zdBMWJlPxsyiLPO8I8KVadREg0jcq8no
+ K7SNaCdSFHiWOLrGji/xpQiTn2VFV/VmotlshBPHN0Pb/Np3sbSJgQFZ6BxhJWQ4p0NShMRghbvlVIaQ
+ Tk73pmMLMFGc9UnTgaluKa9izfp0jec4uM/ZjZTraYwx2BYZo4HjoslVsROMlNxe9P1vpy7Kk0TI//P9
+ UuCxD64oyFxfWjvmXEjzfSmazAgwwTyd+ZsGPxf1CKqEY5F0X3KdxUJ0bozedUVuRfLsjbXzzhWtIKT8
+ D9nNjF5IJUSm468D7Bo7XwAlmHoGBRWdlJ88bjGCT+L7ajDgeodahsBjVPTZ8jQexEJLitYFOgi7bzJg
+ bqo4sdmUhOkvzutkdSiVtROUA68DQNaTOeLmfmbx+gx0mfNqCbuTgCfyl6xMnUHzNQK1DQ2BsIIycbNC
+ ZDYUqFYI1EpwgvaAT6Onxm0CUonx5P1ZiYtwM6o0JMYRXSbkVANWpwsJDo6wPju06dK9GFdABEfLDN3T
+ Grspb3G8zp8ZR+FKLxP+JYU1NEh64vUsCZMbjfTYnK3VqM3pEBthYiiPSYL2dMPMs6wzifdKiJBv5Ule
+ TO2lBkW2lTJYhaCxp58Eke/xM3XGGYZWLzprrH6nIEq1ijNg7fTIJZFusrJM+iFBTBz4lKBJDYN5b5m5
+ kaF5hVuV7poXJ/6VL9xfaOouUgOmr+ZnZHz9/oQ2mBUq1NcMrybKV5ynt6lTGfmjRYgTB1odSOeozn5F
+ XTRSWEWVr0BKTUbp31VJc2bA5CZ9Em/rZMU8s+ZS7aHqdOdx1CwQ3ei5vV+jsXGjcx4s9VFzBbs+hq5m
+ MSw9P4k+JtQY7dSOQvACYEiI4iQRfgLRgEmpaRps3Kt10sc+MGStOdBMzpgMh/+fwPhyfS6zSN/LtK05
+ yJt4GPQJaebAkXaigIyBJRDLxBiZdxOmF15xGzUS1fydDbH0VX8qbOMiIkYW/nEm7XDnqMQn4i+0T0nM
+ 6BHJWnsqpJPvTyIra7sM/d9GsBkUTRFA3isymcIyXU9Og8dMBp4iP0KGdXyA21mbC86aOhtJ9PyqNuQe
+ M0Y5pFro0qByuxNuTn4mTsT7jOgbUI/bH59UVk67NlHWEslmcqXJ7f47wqhEhzPOjeBd2Yhy8h/JTVk2
+ Q7adFUCz4ldDn0My1O70HobWgb448E4lxanPSfqb5Juljbl0hlFJKFbOQkjhWVZ5kqwon067zyRFSfm4
+ Ska8NBrZB1p2Mud/VDNfJoG2jmWGsJMVVfGtzhPeJcM8DAKa4mSdhbF7QND5WxyFuR0VR1FdX037EmE6
+ 88u0PnEzbfjwCRfvWrMgiLFz6DblwlVADqeNbnWDS4zgMWj5/G/C9d7AyaqtxMas0fXJIKCNH9Pnp4YU
+ 9GiaUcoYnGxuXnFn4Q4m/fkyrN8u8w1WI+D72S948NHcj0H9KWtywEo6WXhiDrf3G3URJNKaYtjwrL1E
+ a7HuOYfDZjI1TnK+hPaq3tnDbCOlKe1jabVjcQYWYWDmY1IGPfk9XVLCxBqiTUplnqT0WZEHM53hKsk0
+ 1/LXnKUqJwvanq/3x41R8ZcJ1eoQ5kJlTUEm0pHE02TIIrRM6zh2hus61S3mQzK83obEcnBta2RlMaNu
+ bHMTVZnfWV4Kvl/Td7PopQYRN46Rr7HPhGViDjDQynSb+gTmIqVY5HxPtk1gPgbHVSkIyxEEVbYmkDPR
+ e5QLmlKe6TI1a+3cWOLPln7T2qLqFEKlp082Ay+SAmKa0e4CU2pwsuGQOyMoNfGWMqNs8/zPTql6a/t+
+ xlNHM4qpoZrnnUbwlCZ5KzNpUx1jjQzUl/D1FJ3IASIifnYZNVxzlCy0pQkMAa8STLdxhuFqUpRqKTOR
+ vdZAEI1pxYWHWGC/D8Mfz4jMo6/V6ruYZpUu0TkX3OoO0Lyri5vpNxRxxZwaS0bzJQZf7nSJDyZzZiU3
+ UIKJq2Wx31FtQ0fSdmAxamcCZDRyEjhQhCYeUQiSEdPabH4316mQggKTScKTeGcefV7L1vmH53TVBcOC
+ pr0OpJjxdcWQJlBSPnf/QNY4Yx4Zaqdzdt8CNSBEW2ZJQSuTpTv+XQcPZGRXgkPlZ6J5Pj6mvmkMWvmF
+ IHWSnIlF09JevxaqNYeOZoZNeeKUPVpkFP04ZcmRT8eefLwXyp1E/1W9TmPCyQIwXfLsnNJ4iDaj1/jZ
+ 22ppR9uM3GbjLcN3lL/7Q4qCFAQp0CWjmkwyIJSJUohZpVLzphydsusbuOioPxTrqbzTkCORGbrl3OOu
+ vrk4CygG8Ny0kvCqwdLfTnIpxhpA0UxLaxL0K49jKjfl55XGOh19knDdGJ4NHk5BvQKG5U5E3nSlyto6
+ 3XgV0F3L/QH72cid68nBM8pgeVF6wPpm+iEh++AbISAIpXn0HLWZ9IzmFOruzwpOefPTtA4BZNxZFuk6
+ g7zZgJrPy4AAcuiWg3lnBsokU1GOCb6pXzPBc1op/388exKFZgoFynJJCGSuCT4pqDaaLgvy+HWmfdoC
+ K8iTMYK+BDo7Ts2dFDr5EUXMNYSRSLovDycMcnq0Wzzkx5TN0sbtn0yIhVgCQgmyItlNkHOyjWKas42T
+ 9cMgibOCsckyMaYnV7epTPl6eBjx8K3/tl5pvj6VqrgLnz58kvFWmlxntQd7mQNps21YIONovRwVeEh3
+ +798ThvnPjLXUdyfKk1Jv6rxTCTT4Y+qYNABrS0AARZtAfO+rUOc6HbojGUFtDPZ2GN3IRLEMqdn3j+b
+ V3CUOWR3DAqILaKqtT1+uUhPFq1IfBh7aiLj0mnhhe8Y7JoX7c1YBEluDtYnH++3hptRpH/QpNEpOuF8
+ Buikx5MFq6gwYcuNj8IRtS6Naua4YkCZEQGjjUaDG+WjgRRID0IvzA54P1030JRrc28ZHSX9IicGHSdr
+ Bx2gw4CdnW20xQLQuTMimS8n4aY5Ifp+PtkoP6W5tJzbf5bO/PqAZHPo4zp5B+RVHBTx0h0bf3lWVT1s
+ Hju2gY9+9KP40pcvxxVf/Tqu+s53cP0NN2CxEDRpXYmD8SYE7X83GPIKgxmF3TxscDSSZh6UgK4q7BQf
+ s3b/1hmipNsCEYUOgLRYWAnoGgrPsVVVx/s1+OOZiEWd6jAlq4AZafiifn1QEutInymc9nGnfi1wlrML
+ TDGZDkYQdv6dKWg4mhYRx+Cx8YD8gppMWnFEDsnZMEa5uBNHBAAbBxtYMhUdppFpFva5sqY9TrYE6DLq
+ KzJ8/l84nvHTYrHAne90Pu5ylzvhgrvcFf/uRx6OAwfOdFyXrbNEczd6tl4mnKBX0s052NWbmkO0h285
+ mJ1/cdT179Jb1XXvzSF65a2HwHhke3sb7/7rv8aHP/JRfOrTn8H+U/ZjNQwpUuQuGS/GqMJ7Z7gkYsVJ
+ 4nlaVNpVbfje0Jeh+eS2AhPYSVWcGO5pvNaQJ8JybM5Iok6KcQzjuz1iiUB0vsVEW4G/ISOOioXnxkt3
+ YN8LH+Dk901q0YtMhIzPONeNpOAYundOc+N+gSEaDl5ZvtZOBJSSds2s4KSJ+c7TtfV1HL7lFtzzHnfH
+ Ix/xY3j0Tz0K6+trM23O6NWszrMmAdXg5yDCND3WPgcwx/dJapKh8iTv+TfkzlAZGAP+xsYGXv3a1+E9
+ f/0+rFQxDENqIvFkkv8Euohz5wiHEcTOoGlOCbNRjifzRLowZzqTNovRZcFODbsqrRL9mX0CSEcx1Eb9
+ iZnjShsbOlLE8rvckNiFZNqrqw3jh/MkcaTA6MztSCOsJJeHy1qaFNYsqqC/FCSo/eApcUKRIjeIb+E/
+ pk7L0zAJxKgzEpEJr+KnSehnA/DTj3kUnvn0n8Wp+0+J9NC66kUz+TTjGMncHEr6eybaT/grAjl08OB8
+ Uve9nHIaWWZz7WsUconITfCGN78Vr33dGzBAoKsV4NBujm7LKMNAsorXPrOR5mU8QY6TzFOZKI+WfitO
+ SMVDIoU6TbSz8c83BlfmOTrSvc716M8VvFGKhBLUe9ct7Kj6Rgoy89o0Tx+cS7kAlfeazIS2iU6d3M3N
+ 8SHTW+9HQg7hj7ryE4JJcp5pW0TGtKpRCpvQbHYOTK+vJvXvDb205QI6DHjW05+Gn3vG0zHoMI8EEj3V
+ MLsEpIyPr00Z6b/k8C0H5ybTZ5SHmZ9h4hyxAPJMbf/uG1deid/67d/FN7/93ZHAlKtGjpijOsjxF5Mg
+ AQFjewEOTqIwlVzLGpANWBL0tJxTi8Gwc8j3pGDWmekbUDzyMaqoE5KZ1fnzNOpWhxkP2djJtPrA2Wgn
+ 45gJHWHcOWKezJlmDmW9mhfGVPuZL0wJuxUlxWf+8eWQak6n3HgHTg1nQltBUe7yupLz0mRGcJUQ4mNf
+ brzteefiv/7Gf8adzz+/OJkZAZ8syqcgMoMcZqKzHLrloFZFzd6ytDCZrZ02OvHOGKPS3/79P+D3//B/
+ YRjKgZwM73mCJykQ3GFkQ2YvHooZAiKhsDF7GmACa2FQKQdWIvNkuXhODYpznkEU49N5H/+EFVMF1d5L
+ v7/5ZOj04ZSGmENNKIe/AyKXnPbvBlHgc3IbxcnQ8F2uUW5MnJodc5ZdHU9V7Rq5p841xje1If6eIzb1
+ rTny+/0U8aUEihTEEqxVYnpOEEWAX/uVF+ORj3gEZuaSk3xUkIti51BcfYj2zHibPAcw8dXF3nM0m0Ei
+ iYL8+zWvfT1e87o3Yrm+C0DMlvKuNp5wqUKacCNFy2qYJ8n/wAocA+Pijtx//ptVOhR6MgWVB89GVyYh
+ bU1+SHunObIFoysi8ojHka2WptIY5n9PXGQy6OwsppDf5DefSmRsUSRHffMWZkI3CZpH4xnRTRZaJ7B7
+ jrYpnzN6OnkWz49mrDi51wNMGQPdWidDVRU7O9v4lRe/EE943E/nAEpwPs8p0wCrmchJ/iYalzzgCXSt
+ xg9g3B4p04N6ON/QuK4A/vAP/zfe/b6/xWJtrVfUdUX1KNKdgbMp4EPkPaz+ZNBzkcQ5VDNSydWJAHQY
+ MC5ZRRRPJtGhYaxoZkfDwpuFmQJyODEhZ98Pmp9xeKsKFRq/8VPib4vCsApFhsgudCUFqIUysXdefcRZ
+ /hjQ6Zgp17X+mng3HmmdH6Fb1m7dry90TXlwJXanZxzxkXYyf6znkmbFF1ylwKGv3qtpTmU0AQk+dDkl
+ fZigSzbyjkkIqZn8pQmWa+v4oz/+PwCAJz72sbDJQE3PBF9dd6qxz/itiTFrPxAklD3uHUugq8qz98+N
+ ZkATX13yylfh3e99H5oEpvH9AoQ9mBleVknCTkNXTJianNXALNJCW4+oJnrJuVsXRYKuUTBCfPBNQnGY
+ qv2XEUW0E3bXlcJdOgjKd6UrS6WJcc4Tg3QZNLvx2vM03ojs1JwBDZQ+2Tkpy1Wzbvh9U/jsSkobzvIc
+ Q3d7ygaIcJYTp1+SiMTLoJu/V342gzNCCtHb9N5edUfXPKoT71JZNsF29fbD/qqmcXny2voa/uh//wn+
+ 9v3/AHttnYufUhxhnYhGZ/mf9EdgBj7uBUhKZvQL5gcTwRhSuvBKo/7Ihz/yUbzuTW+FtGV/oMySJ+ML
+ Q0nnFBNx4s+QUmXqRxV0TmU/lbTd3aQJVfxdapqpzA6H2g7tzwqdlZydBaVifl/mZ1oJqctRHOmMRsnm
+ kQQvYUDmoCIqk3lp0GS8c5Qi2fgds2nwMPYlROGVyckNoMjCnb2GUglpVCg4Jg7VjNHpMzTiIiq8D+3J
+ ekRCSYVIc1zvMpSU84TsZlNMlobznX/lSddoH1hb34Xf+4M/xOVfucKrGtOz4S/C4ReYPw3f3M44jpgD
+ IO+RIGSJMJVBobThSFQVN9x4M372Gc/Cthf0UAbJNqgcZad5agyB4DGyyUUkpGjVBcUTinMTNEZH1Hzz
+ vbS279VzCps0tLFWg4/wkqeYKveYqw4GLO/tszw+8RbWkkL31PwZLsfzLEen2YxbyRFrUVb/i4XGY4z2
+ PYpyOtgN2Uqdqzw4148OwxGpKlob50ny/vqUME35N4H85TfRErfMVFjQbFtaQE7XSXdTPUZO6/K6COmZ
+ G1zmszTBGbc6DW943auxe9f6bITP6R5mnU/iAdLNoxYnKGH8cTrE0z0m0XVAbfAghN3wX1/237EioVO8
+ Ta7L82xwnqNkFmVJBQaJIgLZcl22LKXOol3tBUfJ6/pdpYKOe44JhriewIBSpVpp1/7JeD74hmSfXe80
+ urMbXE4lJSqSDjgqDnAsSqU5Dl8ZUOeNiI67J4nkhPQqJFWO0BR5CeFZia7zyenm9IcVLJCFiIwFYoXP
+ c5Ha2kq1FqTDWUfGe3ynKFlRYIMw3RxNx9JqT/mQHZq1NBgtnCchxlHTw2rdqoobDx7C//mzizEMAxKX
+ Wa2ZBXVJRUvXKi5HgE8EmmMpSZ5RoNL3KT3vf//DBz+Iyy7/ig+RJ1e48RQFUpeRTcbSbkTGSDW4qm38
+ 1w7QTMLRGIOIpCjhMZrgeDptBpHbuZjImSSFKcqcnIjzKpwhA2Orr+c+KtS1duskUnwukUVZrYIn7kQM
+ HTgPRr43jrQI/hqktjSLA0UUzITyuh+WMgaXtaVyrB6c9Ycs0rj8njrFW9JCthRDY+poPsCUUAqUdJTR
+ CU+Uxue5esC0ZYhXnHxMA8wGZ4J60kfVAe/8y/fgqu9815RqDizkh2uDpHv1u5Ys25jIKRXbLkWxKHqh
+ DhVobYFXXPwqjJs2BhtxGKnlSwWqOBIQY3zvxzfrdBJKANRCf6O8k3SYAUPq0z08RdY4zMTF4Y4DAqAZ
+ FCRITc9OOnbvJrANAwzZ1dog3bVt6OEizACzguTEIhyBTeqGA4noa+oqrUxcdbn4MmBmQVCh6hOtKMqY
+ J2jZcXI0Ibo0WmbHmCbZWL/L7HpFNCF1kwMD9EhnYg7GgkBFkCWhxgwxKYDJ/H2uz+SofKNZXoxNOttZ
+ 06RhfX0Nf/ryVxTdcmbHG5w5xalyIf2wORoAaCDCRiaClviKxzADsEjFAa5Hv/f8zXtxw403U3TvCpG0
+ 1xC5uuGHcClq+/Pw0THEjsKSiGgpKtHI6voyTwlFvkqGiByLfPnSmUvwsJQQzytLdhRhCJoFl8siTUi9
+ n5BRQE8bH6GZFKFi3DammIBTcHrGZNcjs9NMO/EnHo6/ecttNiSmOMYdNIZeOXQuEc0nUCcOJGTiqAjI
+ 35uPVe6DnaKlbKGXkQBQsADzRj2d4DYDaSEju/5MTjNCp1IBm4ZT+6ePfwJXfedqJCFY+5xfzyCABIpI
+ RhA6EagqAEAGVGVYOnJTaAv8+TvfZZuzXZFyqMqePaJMxDlTdsvNStboTE69C3x/Pht5LBEGF9yYvUWK
+ ehIKoE4NGwXPaecIysbndQ0pIoaKesoQFyczzCyHsU6cHU1GOEZzE1ZYk8z401gTQEbGjtoUr2gSR8ws
+ e9IfVzJGQ2yk8aySQ7M18KRPhhBdfSTRnZBZUXQDq+IXzbdSBzYBKiyTslJA8go1VVCzJAOh9iXpSJAb
+ tQta/vMVE0UKQvbsrt178ca3vGV2RcC6Sig/2TFFDrCueR1ArgqT8j+AfKKvjysyMajiW9/6Fr56xde7
+ ogmZRihVxCGOCQpIoyhGRixBCYMlMudon6McFRud7Cfnk7G0JfRNyh1qsRJrgiKpTMqRiVdVqSIPpllk
+ 4hk4WtkTLRAPJu2y8VKkp+eRxhsP89IeR6pJnivB44yy2PlklJh0aVIKq85bL2phj0Joy2J7FetkOVvM
+ CXCsLoinRL0hjYcDhPUgSd4TBXP/oon8qUHGWEO3CXm62lHKrYoPfuDDWCyXk/58vEw5q7870zxvA4Gt
+ Apii8ND5G0QlXBlIQHngb//u77Fr7+6xtNWVucxm22CLCMc6/2EidC+EoIitZOycIDAzTcmacWYYcxsF
+ oBJphg4xBgeQPUIxrLfsJXJPuthfVTVYFKBlLYbOAS9B17SkK7Q0ZMrAs1YYafYyXOavLX0WZ2X0jGMl
+ KE7Rz9lZynuV5DjROo649D/LmNfkk/L5WLPjUjoJyB2XBn01FDASq4bA8zp2a3CA4Xyklyk1LPUPxp9w
+ skgowudPrKWS44N0ouJGbyuZsSTZbq8GfOLjnwh9KCkSBwJzgOp/F+Puz7cEJAmS8dKFKZQGLZPXh7Um
+ +MxnP+/rtYK+u8rZkfMfpGtwWBIx2GCihVCC04J+8k4gBXYB/IdHk9U29PgRLI6dAG6+EThyGHr0EHD0
+ EHDkMLC9FbzRpDamOf4zDCssjh6FbJwAjh4FDt0MOXQzFhubECwgm9uQ1bYbEFeBibQYQ6GVYaLdkypq
+ /TrxpUB3yIzR0vq8tWGVnrxJyBSrohNvmuZcEo2BA92BQNksxR2F/2vZgaMYc6acBlUkV5cAg3FcicmR
+ jzGdEMPjSeJV2nvA9/IEnvDo+zioBoLarXMV5mD49fDJJhKqYJ6NfSwWDR//xCfHQKkWHKp7QZINyt/Z
+ AfcjwXIRRsC8CAqaPPnYoGbvIwt87tJLsWfvXkD7XLcpMP1mJeXn63vVa6FIwlOOAAR8cleOuuPfgwKy
+ XEP7xd9Cu+D7AF1h0cZ3oq4GhSwFCyiGb16G4c/+C3TjWFc0oyVcrSiwMyiWP/0M4Md/FotVw8INYBid
+ 4kqwWgD6+fdDL/49yK41WmKq4w7DYV5PJMphlmrYuTCFFc2Nxe4Rr7JIBl00jJxwlj/zlEuklOizevnx
+ LDyCs9XIEClFwF5aYiyVkBNnJAqOqzRcKijrPYsiGboho265thW9np2AIi/mw0DIK6eOIGoCxdnuVfdv
+ pON5noHppJsMIXZ6P/eFS9EWC6gOaTmQ0162hbkfXknyOgAujEkK6Azhn1iSsvu+9vWe+/cvbDmOOzOh
+ OvSj2XiryReUnFXCAZm3DTzZI8IQsIvhGQDIYoG1H3s05LYPgB5fQY4JcFiBw4rFEUU7BMghYLH/IugP
+ PsLdKtcL+KgFWJy6H+sPeyYWtwj0yApyGJAjA+QY0I4KdEPRjgxo9/4JyPFjZOLipE+q4cwWeZWFcmdX
+ T4Z1/bptCXYHT466WHtGEiS7tNrh2kBRHVZfwdIHQOhMK2F9DNOjuaYbvAz5BqyuA5iOxWSfaOL2ykMe
+ ac0YB3Jy7q80odDALCGv1qfNG+la6Arj0HDGecUpz6cY7I87aNbCvYW4vXz58q+g9XMkc1lFOF1OMeH2
+ xJ/j+xZFLAHXOU9Ik/iURuQopLj6mquxZ8+epNwg5a7KY/+a4kTxDcjDRh5pubo7npZTAvj9iXsYtrah
+ t7sPRGWcDxil19OIcRQDgK2lQG64NutZiQwNwOJuF2E4vgNtYxqiLaLzYPxqAhy6Grq+iyD8qHyNIkTy
+ 1MTglLr65IOtHBicleBfgq7ZY4cT7WrmiMsETFFOgBG75QzV2W3C9KCmQTdHBAmHzu2HoZOEGOIXv2KK
+ m3LmhB4ptLoY8hIkj8OkOdk2TY5V+6k89g6ItOJAzsX4HfiQYzjXHGSnkAuXTB6U67MG0qSkTVAuF0t8
+ /RvfAKNUiofhBwj1QxyTJAQC9FUAE04yMDLcMt9GECU85DVXX4PFYpEfJAJcaZWIBeWlkoUViqIhMDN4
+ kxgNxKs5SUAAsDx+HLjrvX1Nd5ysCyqN0sW+BdqXP+f5XIzMCcSwWAC3PgdoCzKuvAfCvmhf+TRkz94w
+ ckp18kIekkWUFC3lwOaUPHJQCuVtd+bxkhgA37KboPdk1lcgveqAhWf64Xk2RSaLmnk/gI0TSAZq8wys
+ lIYCyfhLZS5FTS1KTPoiNByC6WxPVUYp4HlEs+ggrlBhwMZ/iuBF3/NMBAdVQkK8pFvSnEiXyqpXt53d
+ e/fiO9/5DuXT2c6MrzxuDslKfIYCbe5mN1DJypv9QtTkqypuOngowUQnfEaZqwCnJ+0ElI3GApJHPleE
+ bIjU5KkKnH0u2mIfMChEFRg08h4yvHbsJuzcciOAXrcuWcQCQFQgZ5wPbS1HdovQFrVWCtxw5egoqpwk
+ lCjAHW9dLYuTiQ3FrVcY35dSI0CWcmshAyCBhsOvC7Uki1QDYd2ysbNFsbLYdUnGV1FhTV1SPRTBckYS
+ gqmumG6lI9bLdxk+S8B0SkHh7bCylAlnCR5l+5i6hrxiE8VC5lgTU5TbN2c0Pr9cLnHttddT2qtk5EZH
+ 7lur/tG1Fp3SL84ZCVjW1Io/7+xsUwFN7pyrz1yofA+mwspVdwHvOConwfsqAQE2EciFF0KPUr7HGCjs
+ HMPlnwL27AcgGGBpCbNUoRvHoLe98+jBub6bLbUJhiWA734DOuxkzUie1DyyQXjSTuNKj+js7KhqYRxf
+ X5+14qZUBEUcT9GF2swrCJIdf6dvXHYc8lAQ8smVlUVB2BH03wkxBM4j4wyags5wTCLhFFzjdNplMk1D
+ HH2cufaPJyYRDkEtBeZRUw5PiHR+5SwMiu81kljveS7Ip3mJZ0bTMKxw/Y03hpUpJSnFEfjQa22J6yzK
+ bkDJXxbnV6J5bnNcwyeXEZx0AVXiquecfOPLXUhCDrHnHDHShK64bYnh7LsGgkjKawoOYDVAr/kK7CA2
+ ziW9dxW0nS20O1zgyCdgeTBWFJDdC+x865u91t5GJESvDU+mjsSbkz5+ipCkTIHSLFqw3Ig3/kVXdNWQ
+ iURfLn5HCULPw3kRB2xYzUOWmsNfskTheyVGaErtTZT0LZDh+O9QHIYYv8kphOpxqKe1C+6f7jM0R4kn
+ BVjjHajviNopxSO6856S0DtGeIwWjN+sNRpM8TZXq1U4bInQGqpUeyV0nWPM6AAYMAR8LjwqaUB2Utxt
+ TORxlMhwCjTnUGra06BDka2DUGVCJlT0wkeVydYGFne5DwZiQOKEyXhdoN+6AmpbLilvMlqbADj/rhg2
+ ZVySYadITNNBIYst6A3XhfKDlAiEinQsfJFGRkNjI5sIw80hbgLzIq2wmXmaLaflXGOWKb6pchhwLrgK
+ p2ROkoxxkvvnKJjmLADfbswyJKXxaBpOP6IxjA7TIXN4SrCf1d7GwR6JAis/U7XEqxLtW6aP9VJDPi5g
+ o8BjGUV+40kyJV5WNYyn5MDHf1f93Rk1hXEWFrTNiuK2T7lQIAAbiA2RjF7rd+wNuFXp0DT5MCNWCE5J
+ 6pSLQHhWPJWSE1xN8NblQkVHCog0YGsb7S73RJOE503yvY8BslvQvnI5FkKbOJzDI63DsIDc/o5YHt0Z
+ +2LYD+JBE+jXvgxdW0t9CkYnYl7ex9SopNb5rc7HxGsyglBCScbDypJySLejhMtDmZLOaETUHOTdwQyh
+ SZGmEmSOKIg0BgG94o2jn0U+CaNkBMIkl6Jf+NwIIzLWc8LI2nnFbdf0NvGc7YNDJ+HXVKbSGAcZ7yU9
+ zTIkWBR6QQGVawwMXST9yWLLjonHVIFmjyRtys7olMkLXc+Vbal3ZyZBmGQjpuG5fVM4rsUnjSHnwzlf
+ 5LtKbcZEo6Kdfxdgc4HYZlwkoAAGQIYt7Gye6P1PtzALAFkOkAO3xbBY5CjDE0YmnIPXoO3dS+lD5qsZ
+ BqMidm4MhROvK8SzyEae0ucCkipRxGVvLnY/G0O8ncmzUbevWIFognFSlXNbjm6aC5yixEGdGi558Qho
+ tPQB+1gYSbocre9QkOqXUe7lKtr0ZWJrID+p9uGs4+QkKjOZ/8aHjImE2tXcn0PqXIZsMk5osqBqSfTT
+ B7ND0jHm3zIgNTVYmVRgJzND2KaVO9G+lioUofPSR/W6TTrDTKZUbcgHiCqAZWvQ887DoOM8pq565Ghj
+ iYZIw3D/B6OdWEEWiylss5DVBDh6BIvzL4C2BWS5jtVC0HRcDxdpQBvnE3DHB4ZiQmODVIei4yoDoE0h
+ B24DrHScV1guIRAsNjawfe2VwNrusTqPlLkqgxsGtQ+WTaqQjOgAhCOtah5AjcJ6l40fo8ZGS20wMjS5
+ jrPZQ+5JDDpn+aYaEs672YBpbI5WqL3kULoMhyGcaYXydfnaDMfnPzR0kSjxB8zY+O3NSuQGDzU7Czam
+ inQRY6twvUospQhcHDdMUds0hSZ+uZegBzpdyzo7zwrNN4u1w6kBQ1pVyrXVv2Q6J+uyNOER59QFlOSi
+ V1eIJlje44Foz34ZZHM0znEzzgCgYRi6t1DF+s4AXcHCEuW/xpDuGRdnAr/2aixEAVliuVKsRMdlP4xH
+ iC2GcK/Sv1NKGcQY3Bra3R8Jvc9PQqXnWEMbwcYS2L3awPabfgurz396NB5pGZT7cl3IInYWMq/KpirV
+ OJ6avhNCICKx8uDnARawlVHXtIpPmR7Q23gpItlxWSbzgPlkmZKVU9J4JpjU6Qg9jFJeQa9UTGuHmOif
+ q7OtQJR0qvgL/xRHeyl44pMn6MJmwimP9MahW7yC4Mg38WnUXUOIaiKnFZPmtgAKAEh9MNfM4dRUwR1A
+ nojpUKN4b//eOgbnKl0wraGJYKVD6t5lnFJZgvzCkx3WTxfmwA2Ml1ZHN7H7Uc/BztERro5PrTpDVsnJ
+ rQBnmEOnmR+Fom2Zh93pZ/YI7Lz9OFSTySHz8wkgHWlSQDZ5kmgFCNC2BDttN/ADj4b+y8ch6+sFqocz
+ TTX5PMGULS1+T5SACkkIH0YqoSST2IIdOlMBY45XOVrGc/bWcbbCMXJqHqNFQHIWYk6nlmD7X+4RUymx
+ 6QYHqXBcAZstgmtfxmXjm1vGjCidt+um8Vmq6EYWys4TiKZHvIs1UswcmDKiir4N9fitVFcz5zrN+dPq
+ bvTTiWvUmufONX+wW7iBWmyQm6GJCgox5sOdYC6IYPSAcXA+F0fLga0p9Nzzgw88OHfpvFkk58Qxpipw
+ 3vFFA5aeikh5ktIdH6VNblHT6mRJT2kU7fgxyPquUF4gKaMbKDVuPB2LfcL7p0M+Ck3JOdBMv0kjQfA+
+ 8ClnOPcMPhG+iDupYMfbL8U/2amw7BXqAi8TWYp0TZIykqPo6ESIRh6zT6v2Qi53rkDK200OvNSXe2Md
+ jfwfpc/kELwZdk3wvkLdrC2WkMGZcDh1kn5q/CVNoZbcW8qY3ZLymGNRkpFWajPbldSCrMNr+7mYYQoo
+ AwEghJGWsSza2cDveldsH5dwNMUxJUNgDtDfWQmnP6p8fy+2qeomWSlLHO+Ps0EpMADDzgqrq78BWSwR
+ 5aGsMGTERLPJxVTUHCdP2aVVFEYPvRlOt+JcAk2ytMAS42CzyGMuahXGozb/M6UhFmCicKYee553dWTI
+ bVGeHXGeFMuYSpgfRiNPGFs7xeN48EhfCWwdf2Q34UoOMm4/tJxpNKj6uEMfpaMalzT1PvISNkYUMMj2
+ qPna3I/yPwo03zhBDGDvguRpIv/InSsZDXOTcj/JAJLzcYNZwSNNzag3AuD2F2CxtROw7HsNVfKgpuim
+ /kj5M6oUeEnOe7XDRCxnpxxB4mIMQoCFCtotV0N3tosCESricXHVD7E1zvQnHld+FGVI4qEwxG7RZBOr
+ LfQ0+3KEE+pPxe8ub4IKhN4zjxWIA0YN6VB77nCUSBBahuRlQh9PptXRoQUlIKI2pbXWUKBrQWJBkjXc
+ mG24Tqdd4Kjq2RqnpDbCEJRrG1dzim0hq0g2Y2yWLVka6RfblaUAquXdbpP2CfLmO4KHAmmCwY47NuNj
+ jSOvK9AQOsgTG3NcubvXNxkvFminnYOhLYjTRbkTY+agojqd8VVGKbklBmr8PVUpZn+VoR+Qv9zfsPra
+ FSmV87/U+JOFaW1FOWlJEYzO6v0nlXphpDzJqKnFFHuRiSEDT1xRckbhLPOZfgjFNFRgaQHpSiQqM87d
+ jMh0wvvMOVeaFhG6xZ6xfmjZmdGLR+SkP6RXJneJsbivO8m6f6QK49WB2wsv5PfH6U211Lclx5slllWN
+ wn3WAw05NodeMrkvL/HJfC8Uw2BrlYHzJIQt0akvDQbXvB06Bi0xRzEAm1vAHS4qIySlnnAkR2FfeCrL
+ XZoGz232bym3dQiog+f2HvBS1RyrM+vQNvDtb9G3xrrmTpPlFuOgKO9RJUJJLJ0RD8jIuFF/UQc5gQ4H
+ 830z2pVmvpEAIjx6FmMioOL8SyhzRoXZmWq57k0J8ST75uQs00MVmZT5IS+9ZipmeDCZ4wAhVyiinsRE
+ QfFbEUd5Vz0wHUuyCJTnh550JlbkkYrwRNi0J052lLlzKBwk8cYZOMm9mKf96sJfai5FMJKhPU1kWAWY
+ R3xHkOYsuvPQBmxtQk4/K/kihebDHFNkK/hXq6IFrcq39M8DoRYeb4L7bOLCiIGwGBvL5Z/EsG8P38Eo
+ kWFVZr6EMYG77z92ELNwY/X/6uhKN5Gz+9dZe3pkYsPy4UmOfillKfQmiE08Z5myKQVzmCjTKdIX7sr5
+ Ick4bBNVThkKcSi6U4YUQU+64wZBdkv/ps7HnYp9FUsmTjTPiwU9hCmlr0okBJ1pZ8zqQYFRETmJZje6
+ wXN+wmNQTbBVUucKq8zL68ThoX3mmqMOMZIpz7VTdG19Havrvg4MYvsgnKnmjccdcoxoxJmelcSnGsd2
+ 7H+obx1uUjXYUE0I0dakgf78MIxGogPQi2QEOpYrqAKXftjPE0Bpnd0HR+2koDQuFhjPoXBUz9TTNuqp
+ fiUliqY4rAKttbHeQ4jv6Uez0qZoJvFcLyIqwxqVUkI6ZtwZaeiUZK4nUEtzolqUi8981t2MNjEjp1nC
+ /0nMCAVLYgI7nfRkjmUm1TI1imdCmdzJsxMP7ErP82pa3JvRJqkqAwoS6TKBeMk3xPowCAZnNMAdjjCU
+ 8qpebOFM5uW05KHV0wDWCB2iKhAAsFhi9erfR/uxy6CL/eMOxNUmZGjQRd8LjzW0A+diuPBHoGjlffEk
+ DQF0V8PwN3+CAYrWGnQ1oC0adjBgre2CyBLDYoG1u34/tg/cNV4OWnJMRxE3X4HVpe/HIIK2o8AgaLt2
+ Y5DRIbSD12Dn4x9BW645X5hvnosWfk+WSMH5aaCqMIBixcBYpgx1Rz4BQw7JWNkiteD0IRQqQ++8VkD0
+ WBpFbVkloaudjhHRT37yGhEed+hnjL9zSIhXEpHU6R748zhOj+ItF0VlGZSIlRS022NJKZkH3LYgzysw
+ RI/onvfSGCo2GatwYVH+PTZCUpCwUx+2UJsKLMk1eU4RviqOoQoFiIY8+jnGgENvcSOn8kjzsBKKzgqs
+ YvkPoAMLILoRVaze/75+rNcSIorVyhyYoq0GyMN+BMu7PhxY6lQqPqYGueYybL3/PVisr2PVGqADhu6I
+ tslRyBm3gRy4YBSNKh2PFQ5MdMDqi+/H8KH3Q4aVH4q6g3GpchDF1s4OFmvr5OkpajAP3VBboRwTXrsF
+ sQFUVe0GMxf1xTgi7lY8osYkXj29hhmQDZP1hZfAWMGrUSuSinlf0SwdaFK9l5eLk05JRFlQ8HFHQ+hN
+ RO2og+Skony9pro5iE5qcimK+mQ3G78ZtSPcuL9WaFqhlN8lhlY1UcGOhZF8MjsCiBxplymnpKomJ5Qc
+ gjdGXskViEFaKlWNQdvgMrtKLTahRV6G8iWUDq3Hraw70Xsf9NB2YX3frYjRQUIuolLI1z6Nxe41YGdr
+ POSRBdCNfdjaAs44swcNyqkc3Y3XBhHIt74GWZ3oY1GkKqVBsaAlq7pGbimNLQHlNIgMoCgdlw3n2W4W
+ ejizgLmIFUb7l2UqoaRuqBROwg67BiTjzrYggnJaVEDlsH6GxIq8FMz9adLPGGdE9ngOQZvpLI+L+alK
+ xp8L1ITv7wY9qPZdjZzExqcoG45gSqyOMWfITc4v1xX4hLM5QbJoKzCLY++yc00fSlbb+DReu8j8ZH7n
+ vMQ2huhcV2mZxwdn+RgoD2SoyPkiR1jJbbKSuE6Yra020M66C7Do+9Y5X2IShxWGa74JWa1gh456tHC/
+ rFic2IScf8+ZEZrz6j/7lxgu/zK5WClVurHyYfzNUcQMoq6/k7MAj5247lC4txt4OGTDjh4R9T3a1fyL
+ LIRRWBp3CjdMsE6a4umUcG7iCIorIGkByQfofqLUdpjgY4UmoqIRwMvSkr4hehlFaThd45UHDUtbpNHc
+ QU4BOEXy2Qv6MpdCGGzWTC9TGqLKKRnxqaboyWbJRrJ0JSoByRGnyUAkwXEDGS2oUFWesOGSQKj4x2Eu
+ Ejfck3GhBn/P6YMU5VoAkI0t6O3vmsbBCAboTuGUNehXLoefgiul/e6J5ba3x7BaS0wQFqjJ4sj1wLEN
+ sm5JgmYDZgQRwhWwJ+ZjsZg99o7AagsWJSGIeQ9it09KkdKzgdUfP65aQoEncYX4O008KNKrBaU8Jld1
+ CbO1sSc0A6aVPV/QGAemqLc8KXuWqglJocn4FVx/Em0Y3qXVBCCjE1Dq7M8y3J/akbXh1zgVSi6L9M3v
+ cHECdM1FM2vHJpeBTwSaRjhLNSytYvlN3p6jCsXgKCxgFk9uUYmwIQjkya+cghTt54+GQiqbRYEzz0tM
+ 9edTpN3A8N1vFkg85EIcAHLR3YGjgw0lw0ZoIM7LPodh7y5Xu3o6bq6ot3oJG+aQTSjxLxSQX5U1K6+k
+ WIQIpFzlcZAaJW46LOhKkPifFVIKIVwo47UfrNnC6IkLXrK8ubpUQWc69AKAqBEhZSyTyebIot4+lpwr
+ Hhh6FMzUZIQS7gHpN8eqqGyNe+vbq4T+qtV6CS1p8MeKraSVMSaRZIfBXJ04aRE0QRZn8hakA4wmS9oC
+ 94qy8Nlb1zD22g4CLCsNg3T7rPCfYXSBMCx0cxbtnvcEjmvxHYw8+sC/9jlg917evkaC6BcWCwwH7gi1
+ wkNjBFcOCvqZgl8C1tb6FmLii5CSGrxN0cmUTCbjkkQ74C9QFVYf5HTCR6lkPPMGWDWipnNs84w4qnNi
+ 3XBHZXwqyMPGFGmOeN+8M8JRS3JEpp8cTGgshApgqSIrtKMw+1spWueNVXGqMC1/l3mMPKrQZ0cmJKM4
+ o6HwrEK8wljmuR+rPplHi6amZcVljwnZo4DeDHRSWhIUq7Az69DQX+wYqwcEeQlNhMLYnECuG0ieFfCi
+ qjST2p/334Lx8I3bXwjdHOJoJp3o+Tgrf+Xl0LVlPEtDtSigJ04Ad70f+sFJ/cQfkNX1eYZ1gV75NQyr
+ VeFJQNopY22sxl+az/CxdtEzIiAn5r5IuropG5uw3k+URqOjoC+lo+Gia7Ry5SRoPSmfpeKvNJnJcq0a
+ RCW1HG15woOhrVeadn74EpeTH8YMoj7rw/SEHpYZ1xWEgU1TphToKHL6ZUK7/Eg8IS57toXAjqSkGnML
+ FZhVp51JpA46r5sTW8bFmxxC4PAJGg6E1nPOcMjzuRPh2BhnAjD8D+LLritZYFgsoasVdFgB2iCyhC7W
+ gLaOoa1jkAWW594Ni7UGDCOs1m5ciRGrAcPGwfH8frTxlT4ARPt2XrUou412/t2xSNGaG+qRbu8C+rUv
+ o+noJJouMBhybuilt82FyaYs1BZDc+cJI6DuDBgbe/6ccuBsLaksYAYPpshG6Zf1kpbzvFbeHPU06k1g
+ uVV5kpA5609ytvY5NSv+M2zNkB6hqxRFu5FI6GKu1CTFph4KXkzzNkFDuAKfD6CVg0B7bBuRErJn4DRi
+ 2jonaqbPcZ0KAv3uSr+PaQbOLd0rJTgnbjR5MkYwnrwz41t0LMk16JXf6mqUBbSjNMyjbvWRfkZfa8CB
+ 07F86FOAMw4ACjTdwWrrBLCzAwzbWAwNsrMNufvDsJJe124sGayTLqCmkAc8BssLvm+8o7/FeBhPEMFi
+ EMjWJmTXHgxHkU4VTq7EeLIxYPm8l42CbKMCLAdAVztYHrsFq899EKsrLoO0RTxPxj4quSR7CfTEUiMj
+ t5nnmoAn+iRgeE3jirak7Ktcg4lOqH8iNhewqMuUxwai2ZxHQaRubK4OZNRh3LEmbnHbXYlE5R8bUF4e
+ VdKFbF4BwTr60YI40xwSsnOVMGYfu42TeU7j9HuSo+f0OFEXKkeC5IpAujrTQu7f/M0yzK4OhgdB0V2F
+ zt0ImCMynvaqMh6hNckxq+N1hkZfdbCtNawAYOMo1n7p1UC7DSCxE2zZ27D69PH4LiBONDJLUh/MqHgL
+ yGnnA6fdMXnnRizTHs0xDH3MNBMtSb2hOwDu+JDeFYH3Np5Zhwc+Cov/+Vzs3HgdmgZNLhxWppKHQggz
+ mA2lgobKU0K/vB5cfHbKw6shslz7s8kNFecxHpk10poqRFkF0hJTQ8LzpKmVbob4JlOHyz0tg4DewttI
+ p6KQbS4gcaqRrIL1Jv3ohN+K/oJWetaCKDuhegSbO0wNGktCEBrMxU82Xg1nmcyM5gjKKmVVgJH28KMG
+ tauSgDopSUbCkR2kDFRDT3matee1zlKeJ/ho9w3DOCu/OPN20L3nQmUFQxvOZCoZHYqABWMxj6BuTupK
+ xq46yVVIYQ1CutcjblBJq3uRTo9HG4UcG6C3O5+sTJ0bAXUDKuZJz5gD4DPs/LnsoSlNMyNJ0M6751yd
+ YX2Vi3J/FqnA7Xe0ZSjAWGc8o/TC5hb6GlCaG/HoR/RmveV2wsABMn7vJORZTTjV56d8gjukaVoKnXXJ
+ mveZpC+8+fCUdaXA6SeeBo8StWn42m1iblpJewMuM5dD1hn+aVHtRL7LCxuCwESWO3N1oXKENwVM/kkt
+ /6H10yzXeN5zHaANQLvdbSAnVr00VqhJgkiTdcpoZ3LyixkPO3rN7U0Ji9liY2gyEzO2IaRo97Xd65Ab
+ r4NgoOq7GDzbcF1FcUPR+D69MDSFXOtandexwpLUJDlxj2BTUcDmGzyj6kzM2481IpmSgfZy5uTPzJfQ
+ LL5x1a7HWPJMOlfksVwiO+JgQxGQ7vFltjn0BLpfAyXZASM5T7fPSmRw5NakTzn+5E6lpS+h9B8gZE/i
+ h5+mlCBzw21Z0oiy07Cb4z2ZyUjKWriQcqrrBCGGjDVmy0J74+xoUjVbMoz4clgI9Lw7jkdsw5SxYF5n
+ ahgUB7NU+12cFXtnu5QAGOdx1IsvdVm7NustFsmDxtU+Bb59JYzdGWmE57ZL2mcQpeWCluTZs7QDCRgD
+ ANhegrSKwDl2MrSCa8251zXYzHbnR0v7Fni+XaEFg7pDcpQAjOXdpW1XdD5TgLZEsz8QQHsbjhAZAmiM
+ mcvfcxDKTtccGLPBp3E5RtC8AzsPHgwBCYf/qDQWyBK20lvWcdMaF9xpelzys8XXs7+z5xtHCKk3W4TM
+ esW8SpFHaO6gqoIP3pjDEYQVuX/HAWu49XnQ5YKWp+qAc76W4jfXudZIR54nR/UcwRnOsa6Y9vB5/Jw0
+ ae9TtjYwHD0E9EIpyOjJ51+wQhcoGiY7dAWgCre0Rk3Pz3UgWSGN9nSLe/3xxurOY1kMU6Mzp0l5e8a5
+ QV9aNrR+mUbmuvMbOUtzHSLnZjTKtFtLUyL1zYx1Q7b+LApzapB4R0ZNUdy+5CW+6RrDFG/WgqzkLMq9
+ SV2Q7S/xgXslI/dKQPWhBvfNcXtZf4VM7Eq5xwKhOErnGVpJe+5tWRDSxh1aqpCt41icfWdvo0ZEH82Q
+ 2esba/wZprsoGUMqjXnlLJhcupNYoFO8445uGCDf/hqwvgyeDFzubLpbo2Q5GJPdfYLeZLxSyGOoSxrA
+ p9HMYknJok3ORcd6j7qHPjGs9Mk1/AKhtEzyc/3DjL8ixCGkjDTsHvJqefQoC0qT6Ht72cck9JIM7Pk0
+ o298ZKfF6QVo7V7iuqc41psh6UyuOxPt5xgyr4T/6c+zb03DJ3ucKSgeEUDNsUyh6vpyyiP581wUISX1
+ 1AEMZ3OmBDKEFFVFgK1t6J0ugiTzyx4RsDkAMlKDZJL7A8SXzib+DPB2gkkGwiR3ac+z0ZFhQnphlDbo
+ jVdBd+0Lh8j4jFqbE1PdLMNQ37iWDi6pqdRJon966STB95o2MXR22GjHl/FDQrwoE7/MZ9sVWIBZok2Z
+ juQIyZg5FbB7yqx4zE+1xAsLaPZSk7LIRnRroit93/KOQfvW0rmcNlJVi5AOzyEYQfIOIauKXJGQUPLn
+ GnQUS/Pn7L5WGWlKVqEO55GJHO6RpGfOI0de4ybn8fHbvaZFNQUWWEEWtBknaVt8rtXRPglSrMEmIb1U
+ 1U6L9c/IP3mgGULN3DbSH5BPodBLP4gR/tNZcwJXIGOf3c9KVXdIclWbo5cEf3MoD0xXkAuFnzwZ5yKi
+ 9IL5VyIh9RSsmqIDQ0QM21PaxU6moI+Jv4yHnUecf/Chl4mQfk92omw9VIzMhRPWHqGTOlvv9p3s1Lil
+ Dp8zEDGDl6LS4RljIpKLyLqmlFjiLMnxIGlCqigUKwRyj0AS8AqM7LmqHKxHaZZvzeTZZKsC7a/XztiH
+ c2ze8qp7b4327j+FPuBRaKfcCsPeXZBFw85iNxatYejrGHJ0Bd2SvmefhCcylkv1vtuyYWd3p3mhY+rQ
+ FqOySXcbCiyOrMaJRzWphif0wpcB0DUAaxhfNrFQtGGBcZeVYmgCfPSt2P7s59DWlySQsHglEqOYJNyB
+ G6iEsFOBUMCsyD3dIdgyJaJN1RQxUlelgMalaU5Atb8DkVSL6HNYbHwUzbrAeFWlPKueivmyN2U+aa09
+ wYSIaPNrGYzmull6X+VucY6BTiuLNfyk856ERU8JUmZriaDaEZ1vkgshpDcBuz74FXLn0zpBFuUMi5ym
+ qI0Yv1v6UEpKlmB24VOdC/D33IOr5iQJJvIxuGKzQQ06OJR1pNHGJzc++F4s/vrPR8NcrTCIAKvtgJNt
+ AX3mS4AHPhnj2znJb2r4MF0NGD71JugH/hrY2ga2NqBbm5DNzZGwYQVpggYF/ue7gfWzuhCiuERI+LIG
+ DG/5rxi+883xwNITO9iRflrwchdw7DBUV5C1pRulD1tI2EAeexd+RVp8DLVUg+Df5BASvPDUhNCmGXQy
+ /gFcPOPAWsR3elrtPxJ3UBw7qZAbdeSGfHiFH2aRUGMqrPXPTlv4tHCmvS93dIk37qUSUlVjLgcw3lgg
+ 9CzDI75f6fOM/NKkoBRekZzq68PYItnhsRHzQS4TvoeVRjed7SrdAVijDCU4sGTHUFqmXI8JVqWSYcn5
+ FAA/tEJ7lLB8LICWeolukxV0zy4IBDvOwD3dcQmGnS0sb3s3qK6mzsm8aYf+w1c/g9WxQ+OKRQNk1xp0
+ 91pEIBEMx45hcfYB4KAZR47YNpDVHmD1yQ9B9u7rGcTgIFG2N7plSBwhVtZwnSUSSqQAWiMloJAo6BNX
+ QlxipWHoXm3ff4fR+bWk7BxamZVhTfnI6qJ5kuMajEYeU1FKDzj2stS6zud8YFkSDCc7UYkxpf6E+vMh
+ 5hp/05dwwELvNCT+1PtNRIi3CEslDJlgczLu9h2BZb4njlksKpdYtvmdiZwwuHhGXe19tHRD93RxdFIR
+ bu3RUaq4UsbEgxCE09yYhuHXZlPO0g0ywEKZIe7OQDY3gfMvgiS2k+papdr+Bnz1q75P3fnk5Wvjve3s
+ 2wBbhdOo+ZOgff0L0OVaoBrExhMCPQ7DGWK6NBieGxmU07qx9wjZpLkuhm+I0B9jIkUiWMozyqYeSgo4
+ GWtSwhh/npegr5UiNuNQKygqOhU2GrCc6Zis2YPQQkUaPhsf/M2VhaWGYLJqEB0JgJMu0878mJPg/fXK
+ Yy7FW14pYZV7NvYaWdVoZ56yRAJZcz0Lqm1pUkn/aRVmGlzneJ4nxnNLBon9UAsFspmSUlo1h0fENFTm
+ HKzwwRXclE6ygFWAxRlnjWmBK7HmDqBYQCDHjwCHb8FCAYVtXUacsa4Y9x6dey7k2ApCDE3LQJbPXfVl
+ 6O7d4Pe8mHe1/23cbgMgCJ1gRfBVgVwEpMaDvuGKI56xTci4yNmyQ0qVjt0gyKrmHTIbMcJJeKQq9QLp
+ h54Z/U6LuQRzRBVdAoUO+ptSGe3nQoYOTcttpweMlPSEZJNzhUBadauNB45qSXN8I1SXkLLrks4+zyXU
+ UVrN9QDsnCXLh1x3itUypVtVbTswMYkk54NJ3kCmCsiEN+rVOGF4TeCloVwv7s8mj9ARgCes0wNFR0kB
+ wx3uAGwAkL4FeCJlYJAG+ebnMOzem47kTvxsI+LAHe4MrAqcrmLaUeCGb0GGIbdDCslh2g77nHF36flU
+ dWmCIwzPBp3O20+JGxAz2qE0qTBGOD3KaUKS/kzTYxsW8+byDEna57X6pAP1rcZZsMGZtMRJjmZ8IYe6
+ 8ALiTlcqUv0/pwVKYAuRZo39Nm/H9FOqIGbkmPcaiMP8yQKvumrANgXZXfl4s7HVQJn2u6Rh1jeNnEWX
+ 5Ol6LWgV4JWsZbzOsKOux7DCez86owAGz2izAiLqsNnOb3Cspm/UNrTb3BGyBSifxuP19N3XDgOGb10B
+ WV86k2pJsmmDHjgfuqBJTJ3wGm33Aqurr4QDt0mWY5DPcUFvw/r0Sm83GgNIXkSEUILEDU8pA8SnCEY0
+ xI7COdVwSjuy1IowwZ2PW74HpyGlUSk9o0isSA4s+jQV7EYy9f8Te3V9ckaZbmS+Wru+vwAE9S0toDQp
+ te3uL5ZsowJQmVv+fehzJZV3E5TUiBG+o42I+jGxGX0F6mpOQ0VREbR46j2cXIxufLQFsUlCGSo4BLHO
+ jXlhJEjRpORnVECEREL2XlzqG55QAtFn/DIytQn0tNuPyUwLyObrxxb5dlZox26ArlYZChVhYOMIhjvf
+ j3XVt79GPqlY7RPoFV/1Ca6TQAVEHXygIHf9acwWHcNE4htDAZLpEL+ENKgakSkdCkddS1Th8wsT/+vI
+ I8exjMj4mC8UdGjOjMljg6V2OFDxWFk/Gdjwh9R3mL+bFqVgpRlqXcE6qoVv3J/WTq1tVh6TOzl13tyV
+ q2ML8vMgaU5Mxi0TXnYtU9qdLzmg5jJmQlg53s5XC2XZZOZFgQf7fwW7bsH0b9dJDYGZEqdabF4qIThl
+ jQzbJ4Db3AGyiGgP1CVIYFhfQK/+TtiDFD2XsYagre9BO+u86QyzUzbeuzxyM3Rzwyv1mElcXBKRLZyZ
+ Gzov1bniIrWV+DSDltiPWjQxncsImyO+xr0uFXUls/s8ss6lXgWZB8KziFYHklMkNzPJhmhzPgHK2JNo
+ QkesL6yUaZ5Ckb9nvhRkl1blEn/zXExezeAAZVfyprGECtNj4g7QL0o8VysUefm3l1ukYUkhO3SI2iqC
+ bPyFQVTWWZY1z7KH4ZShCf2RLppQJJRhAg2t4axdhjqipFJd0LK1ibXzLvRz/V2SiNltiKLtFgzXXtuV
+ LCJS6HufmrvLXdGODWSrpmzsegR61dehu9ZhEcZon6zPU3/ejqO3KRMCPQmV1pLzcHLJGRDyTweppoDJ
+ EUbymQ2pAjI8V5TScl5L1Hr+yuDOlHReK4PWGnuFGs39SXGcjDT8dCRzJLTzMAITXRMkRxTXzPji9F1W
+ Y2vLJuR4UH7d5U8mTZPTNa2z782pRdqBqSNOOtJgB/NU4Ekr1mDx5XQt7k/HgicFJTgR30/iQEIPjZQ7
+ QydiaImWFJhIKXI/dgiCZ1HU3GKl2D5lNyDD+F6Abiwjcxp8N/rWQeiN16X2kyLoaCTDObeDHl9BB4Go
+ YDAwOe5OGp8bBgxXfQHYtceXXxyhl7VnBoselsnpxGQdGWjGq3Gd7CTOVBB3ZIx+/NlJxG0R0ZIFzPgB
+ MhYzulBiuk5GWV9n5sOl6hWO8mJjM6RGK0WuS6oTo2UmiyipWI10kQY4Hx2Kj1+nt0u7J22Z/2Bkwozq
+ Kadw++4yYiXLEBa8e3uypABwnbK7WCfs6HqvWOS0p/vCuZ9UXESOw94qHZ4HSLPkKX3PujERtPp2V/No
+ AdAib5165WCyBnGcSkFjv3mJRMP+fcA7/hfkxLUYTlFgzwC0w5DhZsjqBojcAj16FfDm38Nwyv5Cf8Gx
+ IpArvojhlE3IqQI9RSD7GnSfAvuB1X5Ad21g5/J3Y+e97+BJ6KQPjupdmBTZ3XD6vY0imrOI3EZGu7BD
+ WHz5p38Z+k4TeUVorryMt+nL8EvF+UvQX2Fs+qF0pgLBwE+mD7l9dl4uXvpgqdd894G6JnNFxDfzaAGl
+ x596loHxkVMNq0Cc6nx4CJunMel5mT054iF5WdJ7DR7n1Z2Sl9DH5PhlchuTSTwORwOMr8+M4i+Nhsql
+ pETCDSYPP+bRAX9AnbEnJPjNsFntAIZYK8hCIZ4YY0Ww80//APmHdwPbKwxtPEvQZ1GHAW2xBPbsgZ0V
+ 2EToHLs+rq7kw803Ql70SAyLNbTFOlZNx4i/vY22WmFLByz2nzqrZEZTzPuVyC4G+WxemDw4MXvyNtkE
+ D4WkT4+WdnzllXUpacQo+LSbjXa4VX4bXd6/VSdKxNcUtZJH6ZGuRSGOOUWriUhFME67JnLTw/ZRIoqm
+ cfNY0sktbMfqDiHUrBhocvCVyXQbOR8GHzwHnIIAdcDlzYaOuO6E0wNPCUmU/MIaQRJZBdmTcS3TTSmS
+ 0ODNWAv9hhasuMMgs5VQWjstMXFswWe1faCSlVHo4Mj6QxMhPtA9e4HdzCre1c+jVt9DkFAcDH4rdO8p
+ gGI8kFQAbUvoYokB9h6RUs1Xvag5PEjpgyIV87hGa1u2I3wn1EaFuQN48i4UPoqiWMB0gElytOoTXPVs
+ glhGZDppHFA3Roa9IHmOzrhcT04saJLUTzgXmZRIF+VOgZMdSy4SChhf4W02bC26k/TJx0HjZ8Ng/pda
+ haQLToa6XlMxCDlWhVpZOctGbYMRkj2cTL3q52WsKQfjpsUVpbESEez64DQRk5ioZCidBYYAOCd0ASEL
+ w/mi3j86YuBwKrarTklJBz6LsOym43H6RiIOn+rfg+h1flEkCiaVZTEr6eVYWREQRgRks93O437NHUtg
+ ZER6ZBEPsGOswkpGaG3VbW6s3qRSexPWe1oRCJ942ZdenXcd5aR3OEJ8Yxc7ttjnHoY9DDzTTSf86nja
+ NBMf9WW0kUkpMHAlKQehYhG85WgmRPvNgczc7P177fsYXMY2ryDJDbLlRr/+5dCdrXY9FO/d9UUafCmy
+ ZiRqSCJUd2L8xVEsw1tRnhW/EqQNZYkZYqO9Cflbyfe6X+d3navmI66ZhiKEvFCZLBGmVryE5cIswdKp
+ 5Ukm6sfHlBJo9fFFlCHlE/Ejw93vie9AThM8eW93bz3VWZfcj8dOwvZtVsOAExvHoQC2d3b8KVOEJoJF
+ G/PbxaJhuVxAIFiurWHZFlitBhw9voG1tTWsra37uLjfBPtDAACAh/7A9+Pcc84e07DtHbQmGKxoYhih
+ 33K5QOu08L6GxWKB1hrW1pZYLpcQCBaLhsViMVYKdp+3tbWN48ePY2NzC9vbO1gsFzh27Ciuufo6HD5y
+ FNdddy2uue56LBZr2Lt3r59WZOh0FjmlNEli778bawHNVkwlnJL173WUYTJ+07eeHrmGckxxnY+2cnFc
+ ocNJGYg2gZ1abYoXk4oxxqTlpEeKvhtwkiuo+iacGv2rwbqTIMWdbHOkYXnX7v2j55zZgJzHDJwLKvxz
+ TiW6qUifzV9tY33Pbpx//h2gw+hhV7oCMCrn+q517Nm1C2trS+zetQt79+7FShUHD96Cr33167jh5pux
+ bIu03Tl2pyHtqlDE/vWY4KOonr1SGg2jluTgCWKLAOecfQDPf87P4b73uicOHDhz7I9SG/vbrg9kyClH
+ VMUVX/06/svLfgffve568i4RvVP/TTCsVvi//tNL8eM/8kNOc2uhdDGJbB+qM0/iI/iJkLEq5fHhq32u
+ qDW0xaKjDsFlX74c37zyW/jmld/G5V+5Ap/93KVoraEt18ZVJNdLcedgS8QJDiWdZUPmdQLN9JPORgrL
+ 81qkLzN6m5MLLlwiCyahRRoUHiUMnBBeMf5JzJM+B8DjcCOfUc4kOmH6AqrYARJZaaegKjNZM2QUZoDp
+ UYVdpRUqqgmYNzqDteUCf/g/XoYH3f++ziTzyJb3jqf86mjgVPgh0iBtgT/5s0vwjr/8GxqpNzUa3BCe
+ l9FAFV5iYUoT1OmN47DrXvOx3c3NDfz2b/7/cMGd7wTVAcPOlm+GCvLGTlfF5HRQj4xD7/Yud74jfukX
+ noP//Ju/DVDNBb+vkPO/Eyc28NCHfP9YAelzBhFWm0uhOxxf60aR8egg2LlTAk1IjCfzmqdAw2pwsu5+
+ wV1w0QV3GZ3RYgG0JT772c/hQx/+KD70kX/CzbfcgrZYwrap57cu5XmrSFCrxkkaQwAjlhM7MoyH31ig
+ c2+i7hSFeeXOPyarc/GPZDA44xxYPRmRJpshUDnd86qWi5bIVG7L6F294brUHfojzD5np842DG8kbdph
+ j+S/aTbfqzz4NsVjHv2TuO+9745hGDDoCqvVDnZWOxiGHQy6gi1fal9BaIsF2mKBxXIJWTSIKH7hec/G
+ 2pJza6WIZPLr0K0LOJ2ZWL1gdz4W0Vm5pBWJkTAWC8EPP/QHcZc73XGEu6aAVBjETi3+H2InYUfontMq
+ sLa2jhNb2xFRavUfOYFhWGH/qad6OmCANZxAjEegfsy566alUZ05A9GeNERNH+k0HeI9Yy7fkiUYI/7O
+ Fu5zz7vjJS96Pv76XW/BH//B7+CHf/DBWO1so7UFeF5gVKM5j63pCnvYjH5zXGfL44BBK+Gh/0zEZB6G
+ lyvJCcwVCRHrKSMopsLBZryWT0sEUsUS6+5Ef5XkY3fSmwrrIZoMd7g2uRbjeOP8nJCSO5zq47DJJV+D
+ ywJqEOzavTuUyDyf9B164PEW6GJMVMXaouGpT35CLywSp2FuE4ijFp5LIAiPctno9+EPNHnV+WFRdnNz
+ Ez//zKeSI8oqarTFv+yAw7D9+zHUOA02cZZsQEyZx/MIRGMPWUwEU6Rm2M5Y1PWCc11bJWIToySdUyaG
+ x0RacRthph19DKsd3P++98TLfuM/4t1/8TY88hEPx2q1DUEu9kmVpomjWcbCAqTh8cqW8cbl5H5hWgAl
+ JC/nTp3PSvZhvyOAhmMtYJN1UfKIVP1QUO6AhVWUlFWOCpEl20TCwOEgJKIR+XMzVi7kiNWvAntSiRvI
+ efDpL9Odg0JqYn0NFq1nxlmOHRnnQxrw1Cc/wUtBp8tVITRnPPFBWkRWd7KUb9ZKO2svZvxHyu5/n3vh
+ ogvuOp1MYqlRRA0dyHMw2mVodzZKnzT1TyDX5CeA9MnFvP02VnM0XfUWZmV0svRw8g1NbuUREoS20UpG
+ MTbeM2+9H//xV1+Ed73tDXjg/e+J1WqFhrxKAdDuTjNaJf0gspJDUkAnoyl2UsYT6IZtA+5EOURJk7zx
+ zN6TGRyIXjVkYDpbYucod7/BtYgNF+Mhm8idjLYjWcdtdQBw5XYF8vJOq/Ribx/IgHjiBh/vfSPGVn+V
+ IFjeVcg+bU549HWGT87IgPV7dq/j0Y/6iREFsOMhjy+lBaHvQkKcBkUk5lwv5idYqAN+5kmPdwuQmTFa
+ fltVgulyzGOvgEvlsexKwm3Yioe1YbPReSRAzAekjBnVmFVReDWTxNafFMkCbUT+zNeJ+cRp7VZw1pm3
+ xu//zn/D//1b/wW7d691fmhKpbz6sZPewBiRj2ajsVPAo4jifjkSo462ynizLpAUugcaPJ2y+aJqlxkS
+ yKQHDuJCrwarzDbo4MpCndj4eN2dSs/C68ZaqDWSvKQGJJx6zoDKXO+eyiWBAm2MUBKMgBidMG1icFZm
+ jl+52Wc+/anY6rsAo/5gDjflT27o7iTLoZ90d+R6lJKp4Pa3vS0e9tAHO21phUaRxlGXslL6hhylK6xO
+ /CeoGxE9znukLS7+b0R8UqQZo44nQh+sLRs3pzKjrklqn5cW53/y/L1H9O4oH/rgB+Ltb3o17n2Pi8az
+ DqQXs/X6Eo+aHTmml4yoYRnSH/+OllQJIQfPA6Ww0YZcydBAwcH5oWQf4e94iRmEKJKeEeJvNWdw6GMN
+ pvzG0zLyKzGbzlejoxJfzYiT22IKI/cJeNMdC92rCSJxzlbMSnlM7rnK/QVPTxRP3COffqtT8e8f+Yh4
+ vhvpZBi1bBUW0YfkuX18YL7zWMffg67wjKc9GcNq5TR5kHOZhLNmOYQiZ7QVikV0UCpljUXUyvdnFynl
+ WnEpaTwEY9nRCCOOqFLU1D5Su7aSkGstsizZCfHEuXn1U0/Zhz/+n7+HJ/z0o7CzvTXu8dC5+QZKibh4
+ i0ji0uNY9mW9ovF2AcaKOHHOU4+MKjOizckqN8vKwcjW0mrT3bmTL2fhAv/OthodDH3HXCickPW5ywRb
+ RVRqOVYunQQzsqez28LJpKjNBDfhhjxqzK3nJtg1wxyB4Dk//wycOLERCleRj4YyVkbaUVPmCKX0L+l5
+ +DLSgTNOxyMf8aN8a0oTkhGnCSR307D1H3auzFuDnlM4oAZaSSHJ0NkCWNlcFiWSUK4+H70DXeiM5k1L
+ pE1nqtSm5/0pq2E3qPFowQEvedEv4KW//EKsVttAibgx5oIWuTtGhUKIlfiY6vwdxdr9YQOMdmPMGoe2
+ JDr6aBRJJjH2QqPNjajSqcAUNZL8LShw1OQIY51KnyF2wSExwu/3TEHYCeZGqwci3+BlsnRrmsTU6CcG
+ FFGMYkFW1sKolF8a9OuGc86BM/CIH/sRh4nGCNtb3cRWwjVFjCQwLS7I5Zjvl37vM5/+VOiwoutEJyyJ
+ 4ljDcTqPi+dJksn6HEQO1EXHYQeqRlsMTaNazg3Hqx2FBBThsc6IZOXmFKL+TfHXl1wNBVGwSXMiFGyI
+ K9bEEx/7KLz0l1+Era1NWG0foxGP8tYTKVsc6RWG7YYeXj/FQB89gy/iI+9jCCeXafdVEFGmLBBbjXM0
+ l9OcWeSonL3E63rYYqY1TjYxqFtQeIiVoz6zbZKoJJ4luG3LLQOXPJlcixKEQyobK8AQzzym5VYZagHw
+ tygqxtzt2c/8WZw4cTw5xOytKcSyZyYHFU6Gh8F718cv9u5ax2Mf/ZPElzlwXBMz40O+TiqXzIhXZZj6
+ yfwKAHvxStje1P0EimJnEL2miTOQ/Yb0krvm/kUyw4W/c70hY6M2uKyc+7VAoqp43GN+Ei94/rOxGmLl
+ KI2/8DHpNymNj8nqLehZXrY+6fRFbz0cadDIyDtGJqmfSZYFNmmlFKBEFVpO96cMMkThCjux7JWTHtAt
+ ebqo3JZyM0n92qGb/ER6O04fTAABclLCntTa5ihYHBHyNd4/wLTd8Q63xUN/4MGEYEjqeQh5pLSUlYTr
+ yJG3p44ce8bPPgXQFTVhy4OCeW5m5MJOkPFPduXhxAHxPFGH4syHMvkIJdlozBsxSiSZlETNUVJ6LVb5
+ y4Ya9SOCiP25wiQnhDyNmHFQpBPIltL/febTnoSHP+whZY5Eyr1ldB7sZ3RKKTA6MogmOHg5XxIHQ6yO
+ MIg2tt36kyyTbAqKOBacfWzSYYKCkbNobtSHyhMWmakML6tXzVmbcZJpUEIhNBNbe7LoLxHBlTRRPI2x
+ 1YkKLe1GXu6ZRlH7/9nP/FnsbG+HYmp4Vh8MK5hUCUnPPyNCpDgqwNraAk9+4uMcipI/6sKU3A3ld2Mb
+ dcKxkOPjy/E73Ss0FGmuPBHd46lBWT4CBqXcg/i3DKsHuj5ea+bZybl7f1KpnWpUOCqZfBciUdKXePD/
+ +k8vxYEzbu202PVwpOx6uvQGpa9KJJVKVfwMHd6D0w0ezwwQS5OGVXapDicjdm5qyZ6QYVh4G8z8kKel
+ DpiRk5+kFJZPmZJi9rmUN5sHZa9ZmGSKH2vWBL9VoS2q1L1/hpPdQGXC7YgtLJqLLrwrHnC/++Dzl37J
+ qdHernn0GYfs3QXcp9is6MdLjUtRT3niY/suPnX0ICxNdwEEPRF17Xz6jY0iK5gitp52fvGBEwQo4h7L
+ SY326LslhENKKtb/eO+119+Ab337O653XvMggKZ3LQhaW+DU/ftxu9ueh9NO24/VagUddhD74/9NF0Zy
+ DL6zCVNo7PwfsGt9Db/9st/Ac1/wyyUIdl0oy3chdK7kFNjsnMtFQ/cTAqD3EwZfQ/fDTiioFU2ttlM5
+ EgwfLy4LHZEjJPjuUiJDTTgQtsZtL4+M11oPgL3EAeNKgeU/RkfOoYKKFOkbMa14H4ZBcSZaRHdJwo9E
+ xIpCaKD+OcE4K2Ii+ZvAn/WMp+HFL/1PWC6X0Y4gCc8EXPNRa8faFHEdgEgDViv8zJOf6C4TCS6HMWpP
+ CdKyU8rKzHlFxLIxmlKmY9oSQyNJ5eKY+mPyU36WzmBgx6PDgLe946/wjr/4K6yGVaSgvVqyNUFfkodi
+ fHHsamcHOqywWilue965uMMdbo+7XXhXPOB+98UPPPj7sLO96ZuT6uJYXj3v95izp1r7UX9IC1VxwZ3v
+ iKc95fF4y9veNe6ENEP2vJ43sfXnCIHa4PPmo8K0/neC8VJtYmxzIYDS8XhKCsZbmQNJc5BEpKC9+6UJ
+ 2d/BV9AJ56XprDoTqLLBkNmIwcQ58IcIwEKK40G4w3h+zXdSphh0vHWm72SlHM3zy0QZZ5Y8miqbPEHo
+ d/qrxsfPD7jfvXHR3S7AFV/9RkhU2NzgRjuOiQzQxyfh1YkPP/WoR2Lfnl1IXHTN4tzM5KCzY6JaNYp6
+ 7I7ElSM8CdMOUvbaPMukONOEgMgJ937Wdu1CW+307xv43dKLZkcKCBbasFyuedw5dOQIPn/pZbj0i5fh
+ rW//S6yvLfCwh/0Afv6ZT8PtbnMu7Oi30FtCiBaoijE4fTwf0f9+/nOehb97/4dw88FDgX4kRu7Or487
+ FYkJG78hO3bp/R2yhPzct1Ok9/diKtsTtdefr3hHi1giC1VHUDHhQ50ZpA/WlY0Hxk5PE8zL5t64Xj/Z
+ XbFBNtysLqSIRouhKlU/vDUFJlbQyYxmp7L0x3m+O4z0rDqhDmVVAR3w9Kc8EWrnBwvTjxhYSUmUXkCf
+ y23H7za3TuDnnvFUyr9zHURlZM4Dc/jI34YLCGtW6LBCgvc1ymvQUAjpysRtm/SMt1mWgPoBMvatpurC
+ nhOzQZgmqmLohT+Djjsnt1crfPAj/4QnP/3Z+G+/+wc4cmyzREfiC8ghpBqVHNxI8SA64DnPeoajNUcB
+ oASsImZiby3q4pUeR/5lQpd3hAr6gSroOycHGhahjRlgRsiTjJ+gbOOYYcFEyEOKvRiQhVAUb8whrcKN
+ arFZGZm7xOWReZEb8oSYUZ3LILOC65BRRRZ49MJmGVCV4mGqDiSOGlQEfTRaOmz+kYc/DLc999wsgAn6
+ iRyXYXVSTnKkP/kTP44zbn0rRPVZPWugzGWwTGgC0LxwwWf5fm8naE8Va6wCMu4DEOfLSFXjetcKQ5Po
+ 2QmygcYkZ/jcOp03/vAbbb3UdRiwvraOj/zjx/GEJz8d//KZL8DS0uTveJxCyAvkC2Y84KN/8hHYv288
+ Bp53a0eBFOvr+HSzAFiDE/sd5gurj6ZktQdlahzwdf/RbmfS4fR3SMDvF+GxWH6fC21K8Ay8Xg8gl/Ke
+ 0QrXKTpWV8XnwpuBTyuYq1JJRx81U4oBqytwm7SWpOXNzziBrih5tp09mmJY7eDZz3q6fzYHK4jI6L4p
+ CCTIlfm0eWIDz3jqk2O0g2Z6+t/OESrsmKQsrhwp04XBXRLYtMxVcrSKlKg5o9MRcBMqw+E6b6ifqJzL
+ NfdVh4xH5pQGq7wM3N1pGmtDTuzs4Nd+/Tfxvvd/2HWw7lnIyG9WLfu13tewwk8/+lFYLBew+v/QvNym
+ lv8BO4/RxhhIhDz6zE/IzN4d2IjORG9aSiUUotGKpXme7qnyXgBiiLB+kmF24tPLFS1NUI6KfP650K06
+ UeGMZiNSxYxxzpeY6W4yybql0FvBnSEMpY95qW/ifNJaCm+wCGY+4kcfjvPOPisLwcnpY5ERsZhyhx3k
+ 1OkHf+D7cYfbnxfIJ+V2kxPrZtStqhHNAXB1Y9If23DFk4VwVJe6GjQbX+ktzIGrL3iMDL8REZF10aEz
+ O6MyKq8J5yAQDvj3fv8P8c+f+kySm8xwj+Uu1MYo+tCexz3mUTh65AhpIuFKs4WEnggTiXGT+cnpYfXa
+ WR+Net47lAF11hOD+LNpMRHdOCDNOiPfMlpVH/TUOMBhiC2iHFhN1kJe21cLYugFaOR8cpI3eCzTsHR/
+ LiAzQ01WQp66YXisMJ9Xo2MRFKw+vmewqxWe9rQn98nPEDYrFju7vIYeyrlaDXjWM56WzIG5QK6LeMYO
+ TJICpuhEqznGUzdyPjfPrjF/qUcDALkecQ6luAaELAZ1XbD3EqDJpLpvggb4epKBUFTlwCXQ1vAb/+13
+ cPOhI85tLS1yr3m9KMtLBDhw4Azc+15397dl86qKvZmO0Q3Tw8uOc0vrkbZhohPsCqQVxqQy7KleIJOT
+ kSjqq8GS8ecFBVZBVfLrptC8pEIaO3k5oucvGSiykcvskDKJPIkWuWjc5d6+TIP67Cww074SbZqeje4C
+ 6SQ3KMCjH/VI3PrU/aMHEYqF5uysSc5f08YhxT3ufiHudY+LaKJPT0JnYKU6GId4hSPZ02pqaTzeO9rJ
+ R2QRH2wdW3rezyEJFLcYRU4MSnKOO1jktHifs9cw1aiNZwc1OjCG+fCos7Wzwm//7u/ntJbK1mekT2Eu
+ cQ+6WuGhP/CQkVcp7YK/azFXPNYEW8HzGpPXlMF4k5tIklCFH4DWFW8yf+CP1mSs90B6mF8PTgEulhCm
+ 8VlMgcpyUSyvzPIgDE8MFLOhZ8ZwZsYwxifLOBrT3043lbUyusrZMilm+osiC/OGqVVCTrZCsdrBU5/6
+ BEBaWjZlHjTnk0QjiIm+pz358ciFHnNnJWR62Uy4O0Ed2xxXw9gYlVjpbfgNjnYDMESKI6Xt1Oz0wyh7
+ CUW3seeq4zD0aQsz8hIzjhirrfZ86tOfw79+9guhZXXSAmH8c2PhqP6jP/IwnDix4YEk1qZ4L0VOR6yD
+ mv6CU1G3dA2VtQBKz7hcrFnzK7P8IYRNk4Qq7m1jNyDdEwyRIDxWfCjW0sQD/5ZZBvIeAq7DLwNEyMe+
+ Gch95xnuoM8jAZUNdxIZGDv0j0Qhlwm5cAC6E/QZPpZgrglH8KQnPA57d6+zVoXj8nbUFZEnS29zzll4
+ +MMe6kucWaFzdp2jSz+tRmRC6/SJ7CqkUMYJS9TpR0Pu8CRfi3GxMUUvnLiO/nmIZyXSRplIKlOa9oDQ
+ Ls+ctVEMV2CxWODNb3tH1gKve8kuI48oCDb+3eF2t8cZp59OYy9L3xPEForCNMZqCCWlFgxmpBTou9hA
+ Nxix75Jm1CAFFEb1FICCuQCe43BtCsOh7kYyn7y6r0waeafsXTQYUn54bsiElFNQY0T3uvS6qJRiFOXh
+ twsHM6l8OClxtMNOJS1KkQNL718fBvzMEx+HRWtuQPmoL87mxXNJBfD0pz4JqjtOyRQ+VVBnsBj4+Kf+
+ FZ/89GeNCz4uF7fzm+opQKbCiMUjGrmGxmjge2MJozXNlPvKQjcYWjXKS17szCu1KIU6pAcVgdBYAcEn
+ PvEpXH3ddU5lzBVkR1+5zHqiAIadbdzn3vdMzsZ1gB0iIcS4tyBOoXuKZM1JZUlb0OirWgGZ08Y207Ao
+ c1DQ1+l3MzaJW37oXl57L6Ppe7w90nZqbImmy9zVaaLUGp9NAevsqE08Zs5oUsJQ3JIEk7JydHGW+3NE
+ L8JL6qD4xpVXURFHVvboSlL/AsHPPOWJWNhL3FSzcqVJOHtCcMruXfipRz2y0Mtcm4PYYUx/+mevwmpn
+ JyEjHyprpcesml+zRhmLiPYh05SyQ//JCdb0W0to1KOOozAultH6FJHFvLPIqlXH4l47hWnPnr346/f+
+ /fjqMW7To2aq2CA9E1d+wegIb3fb89BanKVjzyc99Ig7gyrdzGg+Q9Wju8ln0KDVdYD4Fuhk6kbi8FlA
+ 7JwOoWy5864pETtb6hl9Zk+QnEGB+WWdlolyQoXMX8fz+HP7inklYmfB0JihAwrCyJBOrNQYmXn5nYaK
+ V732jbj+xpuLt8//Mmg2A1tfa3ji4396Ask93lLu17pSPfVnnoRhZ7t47xyl+S+uf/jghz+Kb191tS+t
+ xY5Ek3hemovVFypZ7fdG7QTNAxg/ldIxdSBHYwoeuGOna9FrQFeGtEg6ZjIks0yrGJHmNXLgSQ/6PSIN
+ gw748D9+DLJYZDQ4NyXvroqNIBz4PS+6EMNqQGux4pLf7+heyfNZwqiJV1zzUg9k5d+uu6x7FJ2jWMx0
+ WIJnCATg9t2VrL6CYrxuuZjXsCuiHsBgiClFKFBAGwntIPUHK5Qpojv+PPE3E2ojj7FyXN79opEyeI8E
+ dcj1UPbCC5GaODqooC2WuPhVr/Nxx3xBePUsnhjjzz7lSRhWO7OTNMYyq+5aXzb8zBMflyr+Et/M+ih2
+ ufuRhle/7k1YLFou7El4jw2E5GwIQPoynMbx4PDoSdSkVCzSosATOV+t7g/IDiQZvCmy8zX0SjXTHgAg
+ xpiqUIltjhIhuOKKr+Lw4aNulFM6K++CF6ZQqsBFd7sQx48fxTDk8u+4PS+Dm/4wcqk1Ln4I6Ulm9Z1l
+ DNLMAVPgY//JwR2q8TJkk7GIzQGU7K1AsPh6ZIBUg8e4y4/eUzNrwDEugp8CX4Lifhym6kw71gTrRK2E
+ im4i70yEMDQryZHDLMXf/v0HcMvhYwnwGOwPZ0DltP3vU/btwWN+6pFYLBdI5+zBHFWv7mqCJzz2MVgu
+ W6YhDS/gXJqUFOBDH/knfPuq7yImZDseIV4XnESOK2/rNqdkNHJqlCeitLJxZmmtCi4Qoiu6r0cV1vMA
+ +6NhaHF/TkvDIdXurYbjlP2n4l8/81kHR6wimVI26AhYY/BQnH32WRhWiiaL0CiD6z47LBSw2A1jIsuk
+ nTT3Fg6KEFytAwD5s66b8ybCfYzjEvQUIFUQKfLbgC15IIIiemHi/fwXpQ28j59PnbEjkXXQCak+9ZPG
+ qu4skkELv/o6R5gEfRIQjsm5pCydo9LHtmvXHrzq1a/3iMgwN9xYmSvpP8/+uafjxMaJPI5OkHnlna0t
+ PPUpTwpnmMze/q2oIKLj697wlpgI1aCKlm1SlM4Kn1MaN/qS3gHoW50IpTFcTegkm5PwM6xDXdF5ic3R
+ SFJnbon0xMkMJMmGJAl6dwfSBF+54mv98No511929oVCRKgdFCsdcNbZB6jaVZ2e9Op6WCApum0piAZt
+ SQ8nKUISxexP1T8em5mwc4/suzkRPJNYMIcZnMeD3qItVwWfbGmFBpFt23/GM9itvSj3pG6dYdaGQ5kZ
+ hYpg30hJC33IRsHbPkHfeM6qip1hhXe/92+xcWI7O0fKoxTho1lxTr/1qfj3P/Gj/ZDQSKvspy0WePSj
+ fgL7T9kDOzQiZrQ5XmfaBGM13sf++V/x1W9eGaMXJiyYKDHiWd4B6i8KhSKtrMREVW5vGmJzm65CfUy5
+ WEgcmvJCJweHJA+NFqcpu878HSOGxpVhGHDddTf4K+wm3OBZztBEQhpwvT/nrLMqVIY7UUIzrIOwMVrO
+ LpLsyq57OFGm0fQs85z5zHREYqsTrox0jg+3YCxBHWE9EkJpdCpJzyl4x5mlCEkXSDfF74MbBcPOGJFt
+ Fy04jX0TvSfdonWKaP15r3VmIYcr67+rIPMQFotlX0eGnxcfaVRphVCCSMPznvMsbJ7YCGGoRStgc+M4
+ fu6ZTyvpT66eD3Gqu/GxHcFrXv8mLBaL8Y4BNC4njqJqjpDZy9PMgoA2H8FRj8uOQ4grYnF+3qIQDdGd
+ 8Qmaes5FLhwACIKz3JhLAVyCntbpNTNWVVx97bWQzjOOk54GFdBZN0zZz2K5qE2EwZY5MEv54pCcELiH
+ G+UKlZPoI5eS8ioWYs6BAEkJH/SZankaD2rks+aBhTNCwPYQw9j9QM8zwaTYwpGEPL8Q9OXg5UoVLnyu
+ HiCYeBK4lNozGK9EA818a3rA3x84DIo/f8dfYmdIINj7TasAhVdnHzgDP/rvfoiZ6Iz60X/3cJx15ukI
+ CgN9JCtwIehYNw/gk//yaXzlK1/td0mX24CYyacIoExrYQxpsOefnCsISnTp24EnsC7BxlDYwp+YWqD6
+ COpsyMR7n4YXhiGPgtZFYgwoNGukIic2NiDS4EiWHFAtX7Eh1JTJUFiykR4MHEWnOanQ9agpYV5FYZld
+ dkScgieQjWSEpFaaz85LgbSqz/wiL9y3VtcSSqHWrJECMUjfHb7xyp3xtmX3nAbGbfnMqUa7KecLVnnk
+ mJ+cyooYa6scbQrUi3BersEVbnNnB295+194/harxIIatakXQBU///Sn4cSJDUJPwImN43jOs57uJayT
+ jpX7oJZ7pH/dm96GxWLNRy+eZhSJl3iZvXIsp8acCGm9KzbAacD0vDkaWL8SL3sx2VRD0yRfX2ERkpf1
+ S05VWMOtN5o5d9XK8cRN7cjRI0ivmyxL06zjORXTpLMTh0HFXgHYhB4rCVgK9AryClkPvDlNA3PdIGDG
+ Dk1SF1mPPD8XQeMllnSSSYLfxWhLlPZmhaZvwkfQgzQhws7FlM80IDFX8y+q+kvLVBy5Kn8nGzWYyTlD
+ GhVDfMitBT1ve/s74QdoJl5xkQxnbWPXd7rTHfCwH3xwTGAK8NAf/H7c4Xbn9ZIJzlOUlIdVZ/Do8YUv
+ fQWf+8KX+qpLV7wZhZobLYjHFoUp85swkTepeHo4x0uC76GMmbdJkJJcd3feg0e6yXCSUkT0TUVEPrxQ
+ dZ7XEgi2tnaQJ5mD7xlzStXuSZqb0mZyqrFNOZ4nIOz6bjxj6fPwaNYNjBJC6gU3KnpqHEiDx5acVkd7
+ cZBLgUypDpj1plMxep6yLwB1xpeaNGVOtb5wYgMZWPls0S/Kp1jZkqayQyGmyve4iin7Ya/NJoAGiODY
+ iU28413vTlVWMT5jcG1/pPlZP/ez2N7chgDY3tnGM5/2lFLtR1GAZsbTiLqwXv+mt2J9fc1FK4DXNuS8
+ L5xUcrxZ1+j7MZXgybAAVaYIJwP/XISC6R0iSZE5fObJWOJDScm8DZugKkHT0dhALkrgiCXezViiBQTx
+ ntyMl8IRBHdb61vffbh58q80UFIWThsl8470mp1smHqFP9llMwJI8YSROaVgiv568GAUy6wsqaRuJaJv
+ ncATZN5qbsME4qTXxEsyWLJAEgU16rCK9YMTIPaKzoQkRB5N7tzaj4m+/uQwQAfFG978NjQ+Abh6Ts6V
+ vAZbcfcLLsAD7n9vtMUC977H3XHve909KUNCSlSCK3SXALjyW1fhYx//pBulK5G/Nrrisqx4rDRM36Cr
+ oKKujrhi2fjydGKVoSbBIFI6isZ9DbArfkt2zofeJQBiYyB0kVTNaxiymA1ZigCn3/p0OvmXDTPLMeyZ
+ NDHE0wuvzBaIRs2m6uOvDoKcKtcDVH3Mf6sHn3DKuYyYH3GxhW9PSGRMAYjzDhyFxms2asZOFUWsCAFl
+ ke1MwmEws525ySHUVmmXV+UFGL7M/ZDyFy0SVujsKuCeUMwxUlQCcOTocbz7Pe/zcXDWP0VRcOMQDHju
+ z/8cjh8/hqc++fEF3tW+WSYhQYXi1a97E3bt3h1xiZf9yk8sqyn34Lm1j63z0ZcrSxCJ1GYcayzhMspk
+ JS4uiApiuhpHnsy4zK+1ZMQ5fiI9G/NXmeCogxdvXAGccspeLNoiQWzmsjUQ1Xxu1S5PhWBrcysh1/lw
+ ImFLfU6EX5OYl91ziXYK226SdgYDELO1NkZGpdMU0NnpSHW8lt4NyOMsI/GOAkpGVRdU/XTeGHQouE2O
+ lFXPCuKntqiZAR6EXCGBedb39jmS+50UASefycWbEDgY9kuve+NbAGk+tnBmQtyNmWJzJPe6x4V4yYt+
+ ET/0sB8I6B7wpHAjFNf4cM11N+IDH/5HIivD6TQRmAcZSAYUKctNQ5rdL9G/890KrpLcXN7TeQf1vq3/
+ ChFrOxmp2CRgyD100fWwohEtQYaI2nfKKdje3iJENEUBQmPuXM4pqCqu+s7VZUKSZMZdpqyopCWMcFCO
+ K5Owt7mlSKfJIj8FYvvCbDt8Kct9/NRsUFKIYI/sHsuIB3mULvzxbS7Vg6GIUoMwgk7K/ebULMnV8z52
+ AkpOhxiusDqF8IfZ4bhLDxhtKlxyVE4NWhNcf+PNeN/f/YMrXzIkcn7B7lC0Jz/+0YAdncaz7TTkrNJR
+ Xvra170J6+u7oP0E5kjRGBrzeKnhxlSKOy++ZjT5LD2vqNDwAgxOzV0mYwmhVmSRZYFkLNpRhgC+EzGw
+ LCL6ohib1LbRj9geo+f5t799R458+IckTtRhadYOSGs4eMvB0WFyn1VnJpCczN2iPiFnC6aumT6XwZPd
+ lCZ2x5rPAkSiNRMgkz+bo3vADSFN/JC1h/DVlTdHjMhTQm+yn1V4IVY2cPtfwYG30B3h2L5vjcp5yWO7
+ IvXHuFov7iMY5T2Yx8juIiaSxjcbvf0v3oXWFiTcidqBo7d9botFFHAw3Hc8YEtMGb4fPHQE7/27f8Aw
+ DIQ8LAeErzF7Qa4yuhBvKuSgzpwU+XiSdYJ+TeE0DFtprBMuhImKIBUYJRDAKEstnWzRqgdjnXU6qfDB
+ m6eA0ms/FosFbn+724RjmQGPmSyd0Q7Bd797NdbX1iAqsVXAbzNHR06To1pi0cTTxJD6cxrNhv4KJu3x
+ 7H7WydyHlPszZky2TGHfcxRjgt1bogTDIKvCmmMyD8Zp1KgZKLCNtwr4oEyheeLHGKXh3Zk+cSOLK/Ar
+ RTl9HbtfsEm2PgHz1a99E5//whdT5J2KNaL3dPNxTUPs+8ib7T9VxWtf/yasra+HIjC5lmMqyOAsWuYI
+ 4CmfQ0s2FIznOpjzQDiDOPcgRpnXnTsvh6kj8OtC/GeYXnzl7OvG3Sgy/E2RBaGn8X6KkOHRI0fwgPvd
+ L3SZ06epFqdm+a6vfeOb2L17N6SfCVCBkiZVok1atTqJ0IyNO/FM42CUSqPZmLdP7Tjs7wybbJKzv1Tn
+ jwSbwlCntTDD1pGFmK1umNOTgSgCmz0VWOR9p4IKUjBFBB2uuyZFSohBONBOIW8ojfVM/zo8I6fRJ4cW
+ yzW8+vVvAtAi2garzD92umpurCRgUoauJBylFcCJzS381d+8t+foNkaJldpkc7w3ITu2SNuirzSZKM0O
+ NE7j4BVn8RJuQ0rRh3DbnNYlR8R1f+QO55Z+K/wsfMkByxNL0gGDz+P4zjrrDNz2ducFxExOfi7znIRX
+ AIrLv/xVLNeWEFsRMUdIBUl1JKyfpExgw9IZQpR0OBlhf746hziBCiN9ycOC3oU73pdOBeb6BXvOjWcu
+ 3/N7Q0VAdHJubcS54+O8pxiu6pAiK+erkDgAIhSD1ocFWQSOEsLIU+nuDETh8WdlY+UFPv7P/4Jvffs7
+ Udqa/Ssgiqz22QWFwlDSwkinE/LWt78TTZbAENHaZvH5JZXxbOK6U1TRCr8Yk9zDRMpe6UeIK0YSOXQg
+ G0llqDqhpKAFpfsIAU6WmQG4h7JgkfM878js2/SqtYYfePBDMKz6qUn2v4bmViyb9LY3PKjiW9+5Cjs7
+ q17zoeSfMqoVao2lkJRI6TuXZRARyKq2iyRLLmryOX2VmFPry/oq2UXFKkASaxZcGAP3LP5qomBUbiTK
+ FENJJoZv99f2++C1pguInF+KcovwMU2W5ESVYahpOTnFFAiUs0L78VHhzFghFIo9e/bgNW94MzgK1I0q
+ 8xEhQnakJQRt1MYjGAC89R3vwqpPipnZ8bqvl9E6nzmWlTxWo/80ESrlsA7mpM38Ozrggud8Sk3oSyzR
+ caI1Pj3Oo4i946vLOKEtLkZifXcIVAyVdchTnLi2s72Nn/6pn0jFa5IIjg8VCTCaWlvbhS984YvOv9Go
+ mJfBJzvluOrONJiHhPhkrYSIEo8QDsKZIhCNYJX2HNjf5Ajssh8J5nzrfySnqlW12fsXwRts5rJg8Aac
+ DOeje1Iomz9AP+22mA8rQqaqOArFOFFjaq5BtTBkTBsdNP6VoDGfYxDXPvCBD4/HhvWxDYkfOmMomW+p
+ 5KlMk6sq3vHOv8Lm1k6nP+A673LML7lkg3eGF9nRd9a/0ksixDjDD9t9NJPiusjn7BEvhUbqiECZcB6u
+ vx8ghR9hEgllFejLYxTW566759/hdrj7RRfMTijzTlJ22jXgCQTf+s5VuOGmm+MQG/gMSf8dMm+OqDNU
+ Zyee3xyMkk5K4m1dJiQgCU+/lP5GMjC3G041Ju8FEHqAFWgup9ek1vCcKi1b0A9vXwQNKry2GapN4PQa
+ eG7DuvF4nmFXKIUxSaNNUmRTtqyCLGxE1HPaOekZ/13u3oPXvP7N8Yw5y5rXgR1icagzxjvKoeHNb31H
+ LM1JpVSCNonVFWUed6Wokpv7M7PCUFZgoonUSZMm1ZtFOvy6+FjuYtWmsbCRk7+wZzKdhBSUfuvgL/AY
+ hhWe+/NPH2G0hoR9mZgCHOtDRQIA8MEP/SP27NlLplHT30CoKS1yfQhi02S4Lxmqf6wlxADAa/4s11oJ
+ mLnK8s77RnxTPp/J5yirVxiNI6VvO9cmE4X8LAkw7RlwQc0rYYUw4bJy6hCQGYnTNZNV2j6qSqlIP4Q0
+ T0lxvO4GoFnxGboLGjAM+Jv3/R2ObZyggdufVaXmaJTEW0Yr7/3b9+PgoSPgI9YijYrZXU1WIvR/jmsT
+ daYlvzSD4YZ3ktNoNFcZ5DQwHybi43UHPD4fBoBcUVefneSYNF2r8JNzE1gRpkpx73tchIf/0EMToSxJ
+ e9wMmiGy2QZ6zx/5x49jNaySssZqTahArP5kB0xZVPa9PE6yN0MQc+lKclpjpxN71GQ73M9oP40ZFuef
+ c/5QoyAi0hMxred0A6EAk9lkI5BPvpAeOkaXcD5pwDMOgyGzTJqNHMlePU8vOk0vnuw3Tycex2fUhmy8
+ 0XAHqorFcg1vesvbAXIwRQw0jKlXZ1ju03JtiTe+9c8BeGV8as1LS8nI8ix6eMVxUpWlT/jR7wxnKskC
+ os+azgwz3fH7BdhB8Zq2Gb7NORDQmswRJQfE1Yy9zZYcToAp06dd62v4rd/8z1BdBT/sX1UvtgkHG3yJ
+ ldRx5NdddyO+dNmXPU2wCB7yQLGh6fb3OBAmo4wCD+k7yTQzSrB++/8Ue5Jemz6zw0urAH5d4iaPI8Vr
+ shGxgOx8tEbooOhQciDSN4CYIY0Two2EXJI8+shvWg3IEH9y9DAoRRXnxUCJMebtE2IyKF3GQShmtVrh
+ L971buxMxKXUfvB5slmEuG4u4MP/+FF857vXJCNPLHGHaSIpni81LyjeIe5ziynKZspPX5sy20k7AeuV
+ 7qcwnJANOSS7n3bt8RAqsvDoyoahYXxRpm3OMxDS7/33/4rTb30aigmkAXLlKrvFfJQX8Pa/eBf27N2X
+ GMQR3ZavpX6XGlYPinmZNHSLUWndKMQZUpJvkjz1TDLKLgE0CZiRK6AhlFzUkOEie2X7c9ABmYYSRVhY
+ LnDJbQmzl9ryvCrq6BU6Fq8YYyh3GsFGQ2uLZHSm5tm3aFZgkVjnjaYRhR1Z8Js7A976tr/ogm0kiJwb
+ Z7UI781KIiJ489v+olcaTrNrliLnmSHHgifTJGF5OAu+YH0He4GABsVgcxJerhsC4gkvCns+eobeiwW9
+ 7Z5pYWibiAkdYOfEBUS2WWZntY1f//+8BPe/zz1cBh6tXRttRoLlTLyWuG+linf/zfswDKu+m1BjaD42
+ 6kFJMqTnnlZZ8CO5GDJlClk2mu40MqXrPyGXGuISomA2az6whxkZBE+VTSXEXauXbEdZWExK4lLtvi0R
+ 8qnB1dAnWu6X4hjmtAVfivpTSW1yDAn+c6Ti5yQZyCigIS0vWU22qOLNb30HpC0KscU40jDEV0zCVyou
+ /eKXcelll2cTcHL6EiA72PBEpHxkmJOw0T9zERdzopCvXSdGkJYjVIruJlvlsiql/o3/nfum/GT8/E7E
+ itnqoZ1KRLPMl4uGP/q//zt+8hEPH++jtC6Wio32RG2XwNIAAGGKSURBVKkHt+DfKOO3/flfYmc1xFyd
+ 3VPXvvk5mO/LqRPrtC+/ztgez234Y8N0YVkLTM/4s/h+/qzS9wKgGA0r9oTbSt8VIMs5z8yPEGmBYHOO
+ FFo4Ac8z0Uln+0nj8U0wLcSsOukux3n03JIUMJJUFw8Tpao4trGBd/3VeybUJMhZvBlHIxvz6970Vqyt
+ raVJpVHJ475GPQSEJEMhzxWfMpbhyBhDIVhc8k0BYOdpZb0IuFmXBznFMpTnzbJ/IPbmavC814FJtdUW
+ KwxbrVa4593vhre+4ZV40APuCzsrLx/RELy3FQfJ5JDkRh3fWg1441veBh2G6YS2I4mir+Q4zeX14ee4
+ YPcIY9JpWuUx0pcti8KzlU9sM9skZ2jL1GGCXhRRBOFGNXKRNJuvkdfwgRIeZ1PUCr1xHyCZ+eP9lBKE
+ 7BkpjkzLEw1gN81CjagbwmXTY/gRhyx0pnORBVGqULTWfMxvfMvb8fjHPgYYVggj4yg3rZ7gJc0rv/1d
+ /NPH/hnru/d4CuK0qmbEw76eUGf+vtQnJlQm5IgjV4QKHZpRkopm/DYG80o4m1NEU5uwdCThRSpaZBF6
+ F0ocy7fp5aV9sGtrazhy+DC+74H3x1Of8kQ85MEPwkIAxcCMAJKcOZWjsKTiemh36aB49WvehI0Tm+DK
+ y+BuZFhS+M4OedzEhTDoopusiy4Td7S0gzbhyE49V3RKNv6EQCyVoPqMJbgDlq27xZkEwo29w4+0xs6Q
+ M4zfnEFARht9GYC7fkV6K4sphSDfyyHB81LxJozxXozk/85mmaMgxMKSvcI6w7v8uqzxlFz79qabD+F9
+ f/8B/MSPPTz3RGFoemBmzJK/7o1vxa49exKUMxp43VgndKsvWYbbmUKxHMGU4H1fKlEkx1NVusLFcPFU
+ 0GLOm1OI5IbH8S6X61jJCqrje/a056ECgbbxaHjbQ2TVnCdObGBnewu3utVpuOhuF+L+97kXfuInHoGz
+ zzw9dI5QyTxGzCoTvMl4RwT4zjXX4a1//s5uNGZg2dG5ehaJ+WqBnSMpnPpYh/3uErDymZCh64ZkPf1W
+ +N+BmMLxaFUBe6bTvLSwZgrGb8tJkz9ug5E7zuYWxTxD7oT1NA2VNEyTQoHs33aTaWb91GN1ohUSwerf
+ EHxwoKu0RGSsJKcsXig6mzNS4PVvfCse+eM/0snr+7WV9iB4JDHnMArlhpsO4u//4YNY37VrMvnKESGc
+ Kg1kggwseoobRJS+U16BNJwYa6r5Fw8O6cUX3oIEs3hCtn9utCxsTukh3/cgLFrDarWCDoOXzQ7DCqrA
+ oi16swppgrPOPB3nnn02bn36rXG3Cy7Avr17oKvReUhjveCYGoNLMiJ3FPfk3N8Srf/yst+NttxRm6yD
+ Ay4umm9Rup/3ExgkT4Gks5xlqLAJPi3IhOA02YyHWCGaAoznubLe2NI/S0AhH4fLlpjGlWVCTsyhjVL0
+ ylxW+iJD/sD4c3MIXKIM2ED6gFnpnfcB5VqL1MSit1ZhkGKa4IBxhrSmJZGXNVi0MZrNUV713avxkY9+
+ Ag9/2EOIbHJc7lnYnQle9do3Yn19N4YVH7k1V5oadEbVYVdKQl/usA2FWP4uceSVIwVmiYnEWtHpdx7z
+ NSKNOzOWL6GxeF7woPvfCw+8/71IA+hcB0f6Yc42J2PsGoYVObHOS0KMrEJ8VkJGcxy0CD0JINrwile+
+ Dl/vb16y6J8SCZ/wHshgqB8ycuVDds1WfEmdUaUQDRFOU52BIW5KPWohl5YIllKKbgOKsdQ+wQRG/3lV
+ IKsf1wQljUk35TbZgBKC57V3oXsZKQi3xw2YeEjonSFQOnzEuqdqKSpNcc/KeaI/NDMeaCh/8u4KtLbA
+ 297xLqzI2Zlq+FjKz8HDR/G+v33/uOVXiCKbUfdHJSlRyEAmhNaT7sw4asFTYHUlVgsZP2H5xCFxVJQj
+ LNLfFbHx3o/Qry5Hm7QVAaQFfwmh5Nr2gL62/h+myDpK903Zn4uRFPjYJz+FN77lbUl+7CRsjCmdKx7a
+ Vqmc7wnFqcuTg6krvhu6IbloTyhYc9GVW4UEpa47CTmH8dY3Z8UPT3YQ1HFIPvsMkiGbh+LJNLuPdyul
+ gGxdM2rg9otyjW0NvnTk/fb2pUVak+K9cNSvZb4m3KCDjXyEahF5TZgDTW594YuX4bLLLg90TCLJFfAK
+ HYDXv/Etftqwo4qJ8yr8IL1kp5HVlZEHQ3YTF1Xkp9N5+8YWX6bUJHeG04xlplREPhp+hkqt+4DNmLy6
+ W0v7UpSX9DQAgxZkqYUOG3H+HXeMf19+xdfxG//td9AWy0nZdciHAAgzN8mOx2llt5aGIZYAGVIr6WWJ
+ Q/zeDik0m2y4Ot4L4Qbk/M59kp8HIJP3HEYtM8A1xgwzzLto+exlwjTb6MQ6jOtZFhVGMIFzDoYNnHlW
+ lSKVFg9suBr3OxeVtIujVjzHWYZHMF4l6E02GsNiucTLL3l1XzWbVV2/9+jx43jXe9473ksDj6KpxDK6
+ Ya5RRaRs6hEyO263PIefCu3bu6OmPWTGSCucGCambi6HCSyCoZYCCfAkGXOdXQsrCOXEM0tiOdLNhipH
+ UtaPjfnLV3wd/+FX/r/Y2YmJ3ShLDmNLkJuFw4CKvneWut6OfbbiGM04k4Fb031Sy0dF6Xgg4OyowLYw
+ I5LlSNTgh/lE0QINwnMKIK3HGeOM0CbjxLkbyeBC5dr63A8ldloILE5Byt9JtER/TGI21wgJLgdI6Zta
+ GA47rEOveEMYfOq3eOfxlhiADoovfPFyPP+Fv4KHP+wHcafz7xjwrcO7ne1tfPNb38F7/ua9vXmK7wTz
+ /RAHjjYcJTJLgyU19/XlzLIGImEIgbVjYdhWehTaJ9wYieRyqvopjSoYT8NggfIMOQ+XvGwfrKa+awLC
+ ShFp0uQFsmzEAP7l05/Dr//mf8dqNdByJfVAkDyP0PRuMvT+Z05PucAjBaWZ1ZfEi0GhjdJdnki2zz2Y
+ 205H1gX+Mf4vnXjyWiniCRFgisIejVipw5AmahhZ1EFNJ2aMVSXSCXOT6gyYo3RIpasEzbQ7Y9i5FWWJ
+ Rco+OVMOTvB6cV7KyRowcSQCwVe/diW+8c2rxtluDONasymjjIeajgoXjiWicldRcgYjQ20TpwJDKLYS
+ z2K5icalAdQZTLrxD0M4CWddv9NtNPgrYj6+eG0yHL4mjSMWaBKM27UrEfuV8uBao5BdFcAz76zE1Tky
+ 0lMRvOmtf46LL3ktpC0dWXA7jAJYvonvXa7zE9mki9kbsMHQbH/eBxAprS3Z5pE4nxQ0B4D5+6j7ZQ0o
+ Kbikoo355qxIhrCGG5HUHjlqajFDU7SKAmyGtcymMlD35ZNUpMFHVNdZ2aw4REVWnBbeNcFAusUEpqVv
+ j4eq2NnZYV86vpS9J5Krlab+WdkA+Dr4hGeex9kIWz+a3cYzF6l4d79tPMqz1tA4+9/F5pGqIyqXVaQS
+ zNWJxnVeOkJSna5PF2PISVMpMKN+lGQwOok82owgquMYcPDQUfyXl/0uPn/pl4DFGgheZFmTU83r7nkI
+ 6ZQmDfcxiWwm1wnirtgmdFlN12e4Fk6AP/CKV4lX/e9lPBRVZsnEpimWszAZK83k8lKgaETouD883kCX
+ ONf1teO+QzBtEy1K4JFFZrjT6WuIfQjBsDwvkE0m6TpZwhATQ8iQ1eMpRU5G6rSJIq2ikH+bSEkSc5hJ
+ cXl0NIPPBBuf5ue7pzsRFTryB3BUNrKerkncl2beAVJZQl9gwyQNBwoSU4QTyqpaN2tjQjmlR4aXilPK
+ MujLxoMCbYG/fM/78KcvvwTbAx92anRn+TEKTXLyB3q/Po+huV/jIemFjcjPNGDllWxLpgzKxQJlYo+d
+ gLq+ZjnULHLJ8CEvU+RiiVi6Du1Nwd31Mgj2+4nm0bg19ZUOkXA4a06Ey0WNMyUB8Ukq8oD9V+t/D1A0
+ 5TLINNg0mYlu2KudnSJsB+VhbLQgO4GExDtzRsm5kSOoypFhoToMnhi/Pd9an7OwrnJ0rwZWcUcUKRH/
+ aLrbeGPRb5Sb9klOSjPcEeT+OG3ikwW8f2U558lATU9k11OvB39qNXzoz6c/fyn+n5e/Et/89rdhh5Ow
+ 80jpHYtCCKYPsUKiLkhFqkQFPWc0krMwbbEXlfBK2Vivoq7TgXBaHIo7F+GzWhPysXYNeRACsG/kJI2x
+ 5xNyFF6sIPZ9mcBgfOaETSc5TPFbybHGa5SHjZDCRW8cDmfcn6Soq4RMslIIpl6+Rz0dX+Cxub2ddIqV
+ QliY9qwwnWmIFAUooqZIRbmrTseV7KVGpa44R44cnY3uQHYC1TABiVd+ufMucy0JO9o4Mz8DA+U0yOcY
+ uBza2wzHlmE/OykhtGPPE0Il54se5TkoD1As2hre/4EP4s/f+W588UtfxnJtDeOR7vm4XQ8ivfGKO736
+ s/InRT3y0oxKTX/TBGNNs0MnSXODAl9CVU9LzOEkHbWxUNCzdiMtkj4HAECkwSYXwvjz8Bk6KCEB6BgJ
+ 0jqlUG/J8LN7rZVu3KzlRDarmbV7ZORgxw/UibA+eGnAic0TFS1VS8qTXgq0hWDj+HGHXfz8yPPm6MSE
+ GIVBeQrK+cVCcEgYZKRt0cQhRziUZkQ0GX+JKm45dHh8zm2t312MxxQjnXOoA5aLtVilIIVLVTI6HrE9
+ 9FfBhXMJZZ2L8WksNpmbCsyMDnUjS/qhPF1MdR2E/hiXDwPQ2hLX33Az3v3Xf4N3/83f4uChQ2iywHJt
+ vQ+Nd/cRUnUESU5GYnSs49M5K4v0yD/0OSONQHUxAcqT3cnrAS0CW+t3cthnxBAINT4n21ZCAMmgSdkY
+ HrN3FKnRpD80hLGgKDdP1oyGPZ0xbexZTRBzDrWPRKrxFAnpasA/feyf8eIXPG90cKpJGVkBuADjxOY2
+ Lr/iq7BXVyfoVNEmQcBawJOsgMZhzi1fy/jeaSvOLTvakYfDsMLNBw/Rd2ESwzDEOQ1GCtU5qwLf+MaV
+ WN+1jtXOKs9k+/l9tuNR0JZLXH31tTjnrNP9nuhVjCNZOxz1ZHzAT0XgoBxOmEUUOLxOZfw8DAPaYglg
+ gc997vP4xCf/Ff/8yU/hsq98HftPPQXDMGDRFr12g9AsIaOoLSDV1cBiaQUEbHcy1WelcUhmhetTSvNo
+ q1xPG2rQATD2kdlDKJeDdHA4o3mybSAQQIYyLRSZbo68Rn3JgYFbBP3wxD7xJUWIHn0YWWraNcdCSlHR
+ IR5FjRTXc+XfNddeh//1J6/Akx7/GJx33rlorYHfISBoGHQFVcXGiRO44oqv4c8ueQ1aW/QJmshinN6Y
+ FEncCa/L6+jKc0TTqMHQ2rTOHISPJ9/PQFkBrDAeInq3u94Z973vvXHO2Weh+dFY3TUNowNc7WxjZxiw
+ vbmFG28+iC99+XK8693vxbCK1Yrs6VixFfv27sP/+uOX47df9p+xXC6QdvO5Yxb6jXHlUmNjkCArLWNC
+ 9JefIintuNokbQFpDUePHcPV370GV19zLb7+9a/jpoOHcdmXL8eXLrsMbbHErl27sLNaYd8pe32D0ciL
+ qNv39Igg+CRFFUoWbemT+BJLnpJ0N/ZbUP0LmZg7OgtUrBKGKmskkdExGC/5nMWkn45KQ4yBAinQCyCH
+ bjkYqIeiPdOSP083beig+JOXvwLv/Ku/pvXOAXzGX8pv3YNOoRJnXbMbRE5i5JyapOkfiftPbBzv0NW5
+ hIaxWNC20g5Q7Fpbx9r6+ljXQP5qDu6NoKf3We9NSpJxOF+2B+skbImNabwVPBsLGho2No5hNax6pGqh
+ 6t3pWvC3FZpde/ZCBzPiMIqaOrBcAGB7cxPnnns2Tj/91lgu11ypBYKVBoyNsVIdgmroonhRdCjpMGB7
+ tYOd7R1s72xj88QWDh8+gsNHjmJzcwtruxZYLpbYtb4b6+vr2NrZjnQIggGa+CKFx/6FG7n46KYcnhhB
+ Qi/WbiOjT+koy3Wiy7l+AVOzT/rcRPDYxzwKL3rB8yHSTorUmbaEJr0mZrx3mYYreej828ahsXDnyjf0
+ 3hOM8QgwPmeR1DxowPhspK4cKUJOxeP5G8Mhg1JlQsu+3LVnzyQ14woxjn5q1ZGdzrmJPVauNItvuYqJ
+ oUfzApros05oys9JzDqTM7C+3ChVoTJg9569rpRzqwzTPHrcfWiOLNVQsLIbrzp967t34caDt+Cmg7ek
+ ZUwGk1481i9w+Yw45s9jMdUoiTPQBHv37cOefXtTcNje2aH0NIw/za+EKiWDsT7z7IKZD0F/q4FIBju1
+ ERvlRMZOD7t3wGsiJDTQJ4rdKao7qQEKaS3sk1LKqpdMBKcL/FxODE1oM58pdvnAXCnSNwTlzHAy4kdf
+ PaEf6f1QnmVMdpZGnfootxZRTXL7zWY9OefRSl8o9Nwas9LYKloXhNF7/mZCMgdkmNIyIctUvP1SOuqD
+ 5rF0YQ0lBUpCUX/tduKpCmKST/wgT47AvEEJWtV/6vzNuEUCTXihtwg5h7y/o0zNuuOxdCeKW6ZV//5M
+ 11o/iMa0TJhpvQ0tlypeopzbeMk1KH5Zwy24tMqEbDGLWEnreuk270NRsjFCjXazf0mOnfjoFalGpFXB
+ 5oKVrLeuPqFoRpO/HZiV0dOT5GZCg2vKYANj2DWFu1mxOI0CeTgfLOUvbkQmsm5NHAU85+zfu+Nx5Z2b
+ tGQFYPrGv+1AEd69xm2k6kIWEkV8a7MJO4xQhImlAUnJsxESRjHHBzh0V6K//meG6y5Aon1eDhXIZOKZ
+ PygrCphvmvnhRhX3OfXKdIbRZN3oiKZCYkep5nzCMEPWWU4RTAgFeXCJgFaRp9PF81XGNzNSzUqhiZ5w
+ iMX+JtwNRJFXy2pBlwgVz3UzrxP4lWcy6S++bRHpEjtIIayFCNsuSFZa5FyFsRFtOA1v19saNNqvS2Xe
+ h3UPimpCQrS/e0ogfR+59+3OIeiwve7JcSaIS8wT3r0WClwVJbFZSfauNKZ8McC0bEyDn+VFp9wMw9f1
+ NfhDFuIOMMmUaS9a4ifyckqm9pckOsyA2fGeROuSrsQKis1PFP6XD0J0x2VJvOSkwfo2eO7phoRh2T4G
+ N7CS7rCDdJTljrNgbZM/wfZAGOHIhXiYZU06ooh+LA1Engz0ZXEg2vLiIeJ36YbjDF/3ZIJjgTElDdVD
+ cTQok05KOBN+1gYUETz4WS1xyh9DABFl4LoO/x4uCH5hpkHkiCelHLZGX1LWysRQRM39cjQHwPMTdj0f
+ HpKRx3TAZLAMUfsNzsckIk10edcEZ5UvkpNgeZgSc7T0qM4yNVTGYyV9UUS/NqK0IzIxL4ILj58Nz3Zu
+ 5jcOse5lvkwQHwlbSZgJmSgFM1byPo7BX/kbeWU10DBIRSxUUTpBhiNJiUl0Uz+T5GqDoAn9Od9URl5W
+ GxAnKvsNcpKe+ahphnGs8JEtEGxx6cskKmacJqWvUPY5G2nV+zCDCDUUuRPvNNNR0Ax/yMyl3AKISGPG
+ 7c5jGHHGDLyvUNCeT+lBHcu8RE8ipxl+lIHxAR3cFk9AThhsyozc5qQqj9alwX8jnEkq9tIyFM0QPXSK
+ UKAAUJk8q0xsccr24we3kCgdlJHxJt7YOCjac7qT3bNOnIjJ1eE5w/0ZHQwVm4ELIkWkJRAw2d70vMH4
+ HIA9aKWRzDvWSdcphuhMXloNYKZqqagKvOUDdYRUO0OWEuDRwL0Qj+9kYKIYlnD7CAVmp2aPhbOL9MXY
+ 7Jl2goCtf2cpD3wmX1KfEemCdEnfRZoTziL5BndCc4qb/zbDrshGYjjkk83iB3jeS8oiWcNo3kZd7mN3
+ pVRVWKyWqunUKXmjAakjlRJEWS1LIyKdy5R1oohv7DK8X8yHlMNR1BMhf84dd1rTDYcVDj4petKbRDgL
+ TEjvrB+NfmOeJPibmqqylXAEjAQb8SUiGTfkxpA/JzgJuFA8haiwqCAGpLYI7nZBRL/qzDe2UQDufG1T
+ hWcG8c2sFN7maJSuVxM0ouW5YEDAWFtb5XPcJCKpwvcZKElEySKCv/Eh+W2Cu8QNV1SHtQUmMv/cexPD
+ A/YSMuhReuN4w5oucM4eYF2BzU1JTTNfYg7GlLREe59EZscaM0R5CdDgtLEnG4uAUGYKHI65s3GXH6aB
+ 1zDFeRU5PEd9DYn147yiHp9lxwFSE21F+f0R6SinjotXgiJYeHDgvrw5mfZEE+TMx2XSOXZkxJdqQ9FQ
+ ROFwGmXWNqUAAZvEKscqNHEFlfDIZISD5moyyzMzjCqghxQ1IUIfn5bvu2HU04tYzuyJOaqaUku0Y8tm
+ XoWmgNA21tmioayXST5BOsHQ9EOEFoSROT4OoheWjY5pNQBNsL0JPOmHj+IZ338UZ542bopaSMOVNwG/
+ +64D+NJ316Ca6TTHb6fzCjHJjbHzlQvDcvksqQyxX5nyTmveYViEGpAoc8a6qtt6AeKlZJXkJV7iZEuf
+ a1l55jZLgWswANrS7D4kDCrVBkABteI673XGxYUuJr9P/LOfli2iotsKW/grnsxgn13mEdxDVe+fC1sy
+ Dg+GRqQc//QzBEnhEq/R4bc5AsJsPAM9dkswzeH2SWZB2Bo1LllNvUcOYnjmDRNYIFwSNpEu6anZYhuK
+ x/SZFFhpvHxn1X93MiOe+rEHncBLfuAQTl8ocHQBHFvD6ugCt98t+B/PuAlHj7UJlC5i7w5UY5i0dJlP
+ FpKsBsZfShd8TwJiInXO7ym1nXTbITvxbXa+JLytzzWwM+v9F78RjizxlhyWsoSUyNN0X6ooNW2k5fde
+ 7ZasKYEYGkvYJ9dOBKoC+rHgnBdxdBQa0CRq2qwmRVzzuDHXXpTOPOwkMcv1AxZZfcafmGw8MAYluoi2
+ yZIYRRmKvWV84dGTUvaBOjogvbEinaR4JYfi59LSJYaEXDI8y7XcMxbfnx135d1qt+Cnvu84vu9uW9Bt
+ lsuU5qy5rLDxxEPvuDkup3IbOkB0wFU3CHYth3HsNuPeN69sbS9wxwObuOAOW9DNBaQp0DdhVV0Kx0YI
+ gB0fs5NOgvJViVlPbfA9pxBdtbzhDP2rd6SUhBTMxusrG51eTmXyrGQgy3DaZY3exy/Jb9t8zvSIM05R
+ qd4lxxLvPcrByemRAOLFIMSHBEeK0qV8LzF+8AhSc1T3QI6hzYtp7tP6VWSDJyMIBlHZqNFCcweqQ8At
+ a49gXA9RU0GAPWxmLr8oxKoI83wFCYqlkfyCwDYxpRl7pZdfuNWPcHou/bJtoNs7wFN/+Bhe/GM3Q4+s
+ QduAL/7QGl58yVleoq1zg6lo0GE1cOTIEj9078PQjbVOL0HOleATX9mL3bsVO0PU8GNQnLJH8GcvuBoX
+ nbYDKHD9zhpe+MozceMtDQPGFMjnCfp4Bh13KvKZgDaXYSkDh1t7bhJdnNfDiADzumncRs482N9cJ5Ou
+ Jt0XpL39pfG0RZvSFP8NO2qNaLPeRP2lq6GLJu9c9m3h3s9SJedW5qaRZ1ayLvrIvZQTkatm6KkTr8Is
+ SJ/cE3JEVHpOXAcrzJ3QKLntoMk8ZeDw6IcbF6++s7VOE6wQHaMhEvzmyRziORMlgJ/i4kJINMVA2MiV
+ +puEL4kuYiZafJIHNERTi2FoeN6PH8N/+MHD0KNLP8z0Hqfs4E9fcAMaFnEuAONf7tYipDmXQXHR7bax
+ Z3vhJzwbPxUAmuIL165jZ+jvqNPxvPszTxFc8gvX4m67B+hmg241nDUMuOQ51+PAaQ1tgY4GgkVWgMaV
+ iMEz4akgiuRKTjL0Vem5iXLOpFJpuTWlT8jowqM8pR+kHy6fimrTWEyHzfHP2I9fo3aRzTfEz9vEp8Yf
+ XND0eU4FWiyt0OCZOHvFMqZBbfzfINdYCmwEeVYA6bOlRdEZ3gvQV81SDs6OQEkQzlCWQG+ISx0cBlIe
+ ygbmsJ/zFac7SyhtvUxFLKFHDlk5sNdZcIt2Fk30JArReW8FKGyoALBaAT/3o0fw899/BMPKFFTdsd19
+ zzb+9IXXhJFg5seBRoylyYD73m0DqxPNx+20KyCnKj7zpX2unNIUB04FXvH8a3BuWxHtY8S7lSgufu53
+ cNapA5/kRoZThlyUPoZtASZr8sD86Q3X8tzqASKoF6thOgiLs4HXCWc1/SHioupPsj1ZuqAecimJ5SpV
+ xG+La2wXpjNKdIKHTJvknCxeGg300rz2e04QnQI2q/pCw0AJ4i85qF4mHTVlgizpF1eduaDYcIrMaIU9
+ XKD2HXDk+VLacTL4Ihgn89y5h0NMk5ammjNFNB6lajeSlcndn8YkJ9fOU8fwNCHlHcCwUvzCTxzB87/v
+ FuhWyI9rIxTA3ZbATz54w9v2tIo8rCm32/kguP95K8jCTJHgJ4DPfmMXVm3wdGpra4nf/tkbcYBUlBeI
+ MACnDYKLn3stDuwXtJZPUZroSEfEtmqgxIuso9rRXZVRUszA0/yZEVUk5yXPDoRIxlBqFWZyEUaktnpA
+ bVenl8IV9efa7f63L0FyQCSesJTSnA89b/d58NIx+YFVFnndvPFJLPKRd5OMCBIDfHARQhO84/tjMoEe
+ 5f5nME0xpjHPz9rMq18GC9W/y2GUSZoeyJlhlPXt9Qjm7Ch9+h5zSlPoRePPdQctIXbV/N1qS/AL//4w
+ nnm/IxhWC8AnEiWUuve3gmIpq0y/GQQpMZN29NgafvDCQ3BLLOjoE1fuwa71HXeSG5sNF561CRACdEeD
+ 4Ml+AS5+/vU48xQ7FHYg2UdNvg0lycf4VK7ZEtmkFNfVQSbqmXUqPHetk+BJZD/QNsx4ii4UsNOjsg2Q
+ PllakDGuG3tezqV0UhjFkTLVieryE5kT25gNfaSvGQkR+ZTlXWatc3oQaZT4h2Q09X6PUjJzb15jzZsi
+ uI3+VNofT4NWeNrieZh/52HWWcJLU1k5kj3lNoComFTKSTt9wgzCyYowjZ+xBjwaaVjcqItjzcQCA4ZN
+ xUsecwhPv+8xDCu2aNILUrqDS8XffeqUNKWRuYlI/zoR97rjCeweFv1LIX0b0NYVn//mbqyGBpvp2b9v
+ E5d87NTxrDo7ZSk5tE7bDnCrYYVXPedqnH3KCouWqWDkxMeuh5O2vQU8ijJBVhTcC2ZS1EQIlg4EHXRI
+ esybt2wgwVrN+j5xWHkXn6ecjtSompF1gVMcjUg+mcwjpOQaVgIMNeN8dDFTwGtCjfJyhZsuRXxW5EkV
+ GJkzB9MINgV7CUgxCWVQjq+uDHE5L81M9Jk4FILT6DIpQ95WXGNhKFRNJ0e7i3PkWTmiNjy4zfmY547J
+ 2WshmTxQ/35zq+HFjzuEJ93zGLDT0kSq8Y1TiIOD4oWXnI3NIYTBOylNZhwVmijufcEWVieiHU6FdM8O
+ PvOV3S73Me1reNX7TsU7r9iNwV4Go0F+ml+BYv9igZc//3qceRowrg2EMrq+DOqBJ+aYxKO6/adFM/M5
+ lZRSAtM016O0ITjKnSxwCBtDzVmzjtT0hPs+mZ6m06so0gPib0m2+xwlQAHjW0lTJgmJ6z3ZcEpfaDsw
+ C1tTC9Z+nljgqjrzaHyophkwexjtyxeTaMuMd4sLbMKvj6tIwNWYjzNihGX5nxQ5WldiHjIEwTHbjEpY
+ WUy4Anrjq4YAS1FRLj6BY0pORiqYsecagJ2dAS99ws148j2OQ1cKYEWTO3QzgEUTHBHB815zFq4/3MrJ
+ u2SNHonGZ7WNbwa7/203xxn7Lhc3KlF86mv7sL6+HRWAoyCwtgT+4B23xl99bTewsOibircjoAwDbjUI
+ Xv2ca3DWqYqGXo0mMZ68EmUTrko6p7Nj0qSvrijx2Z1T0O/VhIhIWiPq3EoVr/yw0SWnnCIOyZXGOX7H
+ KCWWId3Vlchcyt9InhmdR6ANXeZTrqBdf739iZHxQLLlumFSZGWT9IktNxjrh+c96V6Jz+md8BDQye1Q
+ MLNYvZSJS4wOaZsRx0B5x1aagGSFSFOuQZ+bMc/KmvAkUhp2jMm5MF9ABuc4DdjaUvzq4w7i8Xc70QtR
+ MrNHrx5o4XBTPOeSM3HDLcsQG1WucV4oiHGLKo4fX+ChdztW0pqIoJ/82m6srwmknhgiwHId+B9vPwPv
+ vGw3FCuKNFFPb3NKEMVpAC557nU4+9YD2oL0SMkxhRQmfGHElnbduRHbGDUbMOlDfTN1KhBj5JNddURU
+ ZRoMsrNugYIHoWRCvdqZK/QfaGxMNp+B4I6GNZ/F0vWd7Z0BjckncCwpbxK9sBiYmuwtVPmMOc7diHBE
+ PsKf2SPnHV9mTGzY6kqSIB/lejSkxB0+TMPs2YMGFWIEbCfPGd8E4tFQmoGcWHIm7qSCF56re0FUZysX
+ osj43sBffdJNePwFJ6Cr/ry3LbC8GDKuxR9pimddfC5uONSPv+4E5aUng5QEoAXAILjPXbew2M5G4cay
+ W/HZr69hpS3RbGwSEezapfiDv7oV3nnFbujSooMhIuKXAitV7Ffg4p+/FmedIlg2hINwJTY682LZVK+K
+ JSjpUlbiZCm8QSdHTpI11Zio0wTXwRSJe/rC6TBEMOjgVzwOgZxwGivNg5Hd2E8TyQVpTHNBLa5imP7Y
+ GLxG0ImaVPhlryjUa+S0sZ7JKwlOlATE9S2W1k4J3pMfQfZ2SciM9ZS6k5Q2mILyUl1ShqQc4fhoOoLG
+ WbCWM5wMMpMU8w2dmBCKuENLghZgtQm85PEH8cQLtyGycGF6ROm7w+z6odbw3EvOwo23CAZpkWnQGHjC
+ LCm6Am2heMAdNoCtRa8PJwcqwHZTXHblPm/DI4pB4T6MtQb80bvOwNsv3Q9dIJSEeQ9A+jaUUzHgFc+7
+ GmeeFmhOfImUCCxj4BTQ5JvVppuYhCElXSsplyEKj8WGsKS4BnLy498RTJLYw4o9JSIAE0GEGnXdsqVE
+ iYCZnB0ZdRkGjSPQJZtZNTWvzeIbuMNUb095GvMEdK9DIdTcSabPw+0qWUCC3hoD8UYZYhVD9PFI/o3J
+ vdxHBpTmqJJHbTYFoydpSpBWANixSMBwX6okw7B18QZAdIXVtuJXnnQTnnDBJoZtha4GxCkNEm1jhOOH
+ Fw3PueQArju0FunSnGZQUM4+TLFaCe57+01AYrY9YKPgE1fswdrebdbr0Bclp79YYLEu+JO/2Y83f/5U
+ 6Bri/XWl4moMCg2nquBVz70a59xKsUAv5WU+l4jp/OveL3121BZRW1w+MWhHPuQRfFUmpuuRtreR8ubM
+ sjqfcDg2aUmJYEB9ShNg1LLOsKMWCp7JN+rEweUSeeUmWXUA8BxdtRGJXGei8NwYyxbReYqgSRcpvyo5
+ SqQTA/UXIVt7R5X5zpjCAPZoSfc8nJriNMSCEl0nnfJXf80KXvx7O37MxVdgafBKXOks3RgGxfa24KVP
+ vgWPv/M2oBJr4v4Mw1bFIQied/GZuPEW8Xssa03IpkRroYk8gWBzY4kHX3g0nDlp3rBSfPa7e7C2yOMI
+ icasPTBumlk0xcXvOxVv+Jf9kAUJuDvwgfVFgFMGxcXPuQZn3VogbVySq7UcxisXJaPCyAwiepPB5uVO
+ kxkJs1QP5sIuzQgOmQe+XEc02Dh9Qw84tWLIp+EI6CsON2nHoMMNCwRlNyXYVulQE6crI80WSlCE25U+
+ pauFdi6wk0YFLAyTJxA9RpvnBkoC40+El5HeT0InRKffRKkJaXlOJ7LHgTJnaD5h8EhTmOfG28Edz6D6
+ vdMxp9Ar0R10wLAN/NpTbsJj73IcwApIjpB/FE0UhwV43ivPwQ2HlxikQb2qw456lPIUyc8PWhkv3euC
+ 48DGEuFo4Qq83D3gU1esYzXEZOdcRPC5Bkv7muKSD+zHq//5VLQ1BbqOJDsQ6bVMglMGwSU/fw3OOW0H
+ TezdgxppD3XWmIczcL50EsKvqR23wTKs64ZShqz81RSGVoTI97pRC/GalMsLoyp/0fUfM0IgRJxTjYzE
+ OSZAdUwBsncKeqR8ToPRaHx0EAFSYb7LcjOK+GnJLRGmGTG4d4zZ33ECbIhReiFGxgtOOy/NJZoN5hdt
+ LClN5PwzOKh7voYG8u9ZQSoqYi9dPNZqW/BrTz2Ix95pZ3zPF1f2pZ9xcLcMiue96kxcf1hohpw8HCMh
+ Vt6SbqkCiwbc704noCuhZ+E8PiHAV67cDa8JmYODwbLe7vjH+gJ4/UdOwcUf2w9ZalJU1inr71QoLn72
+ DTjrVIyrDRJOPsZC03el38x3o0URiI9m/xWFx1pyxh5hs3al1aKQbxxayuOJszJDJh4kqVkv853MwfU+
+ +uRinqwOtZ0ECgpwNROMe8QQQHGfpBxzxCS5M5xfxHO+S8uZWEsdg0BDNY39gitV+LuGrMhRMsoJBpdM
+ sgIgKaoP05FUcZMJ7pc8x+6xSOGQrHpJTAwu8U3H4pvtLcGvPvkm/PSdNqMta9slFDDzUFM89zXn4oZD
+ a1gN42u4IoCUslZNw3bBS+dfE8X2zgIPueMO7xr3J7QBH7tiN/aesoLOKNSMKPsQRoe96n+/4SP78Yp/
+ PhVtOaR32lfmDBCcMgB/9txrcM4+RbPRkG749Ak59+gXU2vgiTwhh5AQGOcNFiDiBi/CCUDqSJdXb6Zi
+ p6lXIaVFsbvgeELjrs0tKhsllYfPCKG06LHQ+IaY02ico0p5MOlCneGuBCgi/zWv7UzKVhe7tcJ98eoD
+ Q1DLBQFKN7ggx5CDC56W8Kx5RgHmbYmeUIpgJC9FSh2rW1Rsy3SlMqeV4FMWUlo+3BH84qNuwePvvAUZ
+ mK7xLIBxVi/mEw7LgF+85FzcdEs42jiMwuRUIhRHOS1oSwXbm4r7nn80KZArngKf/dZe+BtoeoOOkt3d
+ SjEoHgcgC8WbP7QPf/yPt4Ks7XhOG8ld1t9bQXDxC67HgdOGIJ6hqBt+yCi5X0ee7PW5dJeNNwQVk5+8
+ rE16VRx6fiWcEqmEdhiu0Kvjed2f+R46LklXwyFxwONAPX8CoqM2N5qgwbe1Z6RbiSrSIUaELUekZ2Gk
+ 4gpzgGIIIa2E5ijpeT/FNYaMM+iEi1sYazLCc9vIRJIymGJK5F1uy+JoxQffkQ0fH5UUkydouiS9nFWA
+ NgA/99BDsOn7/H7BIFyhOAjFc155W1x7EFjpAoO/IV6ykMmx8VKdVDkroKJ44N1OjOcJuAwjA2m7Bf/6
+ 1V0YNCZa07IWK12B3j4XMKoa0ATv+Ng+/MEHzgTWVpHeaX7edGH/Cvj1R9+E7VVzR57SUYRRsFEZXZYu
+ uPqSfsbRWuoTksxtVn5LOcoZ+qH3hJjZZtiY649SXzmuRF7CbxfW1G+kxcaXYJsm1f6eP9KXAbmGJh1F
+ be2WFlPNDed03yPvJAdIth4AKQQ7dpZeSsF3OtZDIsjRAClEMJS8NOVn7MhCKFovkF5qHm9Xjibom0kw
+ 8ywNmK7Z0t85txJgEFAxX1IiE7MC+PhX9+D6GzGur/fUw5QwvfLBaSvvVEjzMeP/y4Xg/udvQYYgnEu2
+ NwBccfUuf/GqsYEhdDY4ty0fBb9+WprgPZ/ag2uOLRKtSRYikO4Z7njOFra32tThm/OlwOEpJ3EwyRpR
+ aJOWYYnZtqXdUFUt/BkRKc0NdWOIpevgSS3kqWrL1bIm56BbHF3EepwCQz85uAuwOgegXDP2TviHngKU
+ L9Nbe+jGCGCxTqypZ5k4gYjdwSt2WbEcZvdJ7hAC32GmZUjsXax0tYywPnKSJC1FWv+akEoaosY4TWiR
+ 6tizgoSipKEgTaMQV96kuP7wOqA9tyPv6tMBMh7e+MgLTuAFj7oFw1bz9X4hYnl1hHfKJcRS8pnjmw0P
+ vMOJ8bDZngrxDroPf3EPTtm3TehlKoIcMshD+kGeZn8jt17+gmtxzpqJOnQniW8xjuGvv7Afe/fsRHEX
+ GMYroKx3krQppbKkL1FfX3TCdNf4ScrBgTGOjjNTDcFq9OB0+c4I0gE34vSTl/usrYpI/E3FvFR90h9K
+ XQhc2k9j7zcxUJOnRCR2g6S2vFiTIaaGEKydlAqxEBNj6dmEqYKpecfdkOivaMZEOZdvuYG7I88eIk2m
+ ub5pchpC9KW81AyJ8mDuz+jbs0fx4tccwMZygDagypqRygLAU+91HL/0U0eAneb9sQIGEgpD8bEJpVKG
+ e7cE97/z8V6EBAjsxCIAA/D5a5YYD9EkTtIYTG3jX8bz6jBfACwE+D8vvAH33KehJy4vSYe9YgAuO9bw
+ 2vfvB58O6hV+LEPymAHnM7QOYjUZNiB9550kPfJ5DtYILlMGaDKOp6HprMreWJnpSJE69KjopmY9tkAz
+ 6v7A7Ee27+qOBbVpHyOoEpDlRogtviLl5s00bigmCDMmNlQ2oDGM5ghsCtQ9UJ5YSVzLItFgnS2F6WCO
+ iotsGPwFPSlKwgw37jeFSS9hSPRwlCg5hWCSdgikHwxpCEgxoOGaW5Z44RvOwWaThB5S6tV5OQzAU+55
+ BL/0qJswbEm6KezSYOxEp5wnhuLud9EJrI4uCEbGhiTZN+Azl+/pRj8+7UaeUikKLWz/AogMkCZYkwF/
+ 8vzrcLfdO+P79UKlKaKKD+LyjYYXX3JgXEVAIzkRunQYSg7CUh8nyxxG9dgRbdMknxoKqjC+9DV6gByj
+ DCmLBKWlcG32D0Joyb5cXpqcQQRXNyqSdX6ZTAq6bDp9zP5qMCmyi6jI6p47YS8R6/bGRGJMMiC7n+AZ
+ iTVFEUE6T5Cvm8d2wzdIRlE3TRCVR5OnFo4rIRR3HrSGHLLjKG9fUG0/RXlue9zIEVB9PEdHceW1ghe+
+ /iycaFTmYTQ40f05VTzl3ht40eNu7puEaP7Bxk4+aSR1CLq7LBYNuPd5m8C2OJq2PhqAIycW+MZ1617l
+ mOTmwg0ZWLteSdv7XsoK/88v3oC7712NY/ahsDvtDwyCy441vOjlZ2OLZqtFJdHgqKGmDq4nBNkReXxy
+ /kqQW5NaIQJb13xyJim3t9QI4subXjXK1YCgnZ7+DI1B+4nBKPMazCUKlj4KRoHFn3iWpDQEVieRWAaM
+ CNCVRAJyRBDS6b19AHUTEdc1p/3ILIgkuTzhYvoQg8/VYNMiJYt6TKO6QM3k2J3EL/LyNGsvoon+mhFE
+ lA9L82El4ffWE2y2qDIqxYAFvnF9wy+96ezRCdgqiUU0ztUgkFXDky7cwC8//mbs7BTpkhGGDrMSj/zc
+ 3lY84PzNEQd2YMaHwH74K7txyr4VBC1QTEWUyg5ySNFMAOwC8CfPvR4X7ln5HMOk4EuC95cdb/jlSw5g
+ WxWiSzcSpaWvcSjh3BNrEM7EXsXmultCcZo0pH0cVnikJFejcTwFWdyxZ1lqdpDFM6WdrREKwekHyG5i
+ dEK8L6Gc+TjTZ/IgNhz/e6yzcKgeqD57maibkNyhBlN0IIOySDzN2DJRSZniiC/PTxLKUQQMG5VNXFo0
+ 8pRuJPn1e202INNE4L3Ij4RtSHXCfoLt5vkngkUYJtPpSqcYVPHNa4EXvvYsHFvEeYdexFGYL6p47AUb
+ +NXHHcLOKvOaxzNnJBDBztYaHnTnDYA239ic2jAAn/3WbtCBQhPDN13x+bR+Jp4IgAbs2y14+YuuwUV7
+ Nd1byOg0N1x2GHjxKw5gq285dlk7Ugu5CqHN6pltlaWe75DlULd1xaSb1MF6qhuBjo/OCx2wvwS2xBj2
+ RN8hIylfcei/RWMxPVPZnQatW/JEMY+1+pP0BUUwPxTU9bsKnIx1kkMXSabPnldNQv3UkfDf5bPbCUVm
+ fhFpbtiTwIqbiFjadU1IAyhUztCSZsAJ9iJd7w8bM2farobE3mA1LPC165f4hVedg6NtFJFvpnE9j4gv
+ O4LHXXgMv/Log9jaah55fbQDF7PwF8ADLtqAHm9jGuLv8xt/lqet8OkvrzkSdHnUAJcieijrabuAi593
+ Ne60htijQJOh1lGT8WCwLx1teNEl52CbAk5FgVWLzMDrEmx6O7X7CXIiRqRHiCqQmbzC8IAtyxEE9fSF
+ kEKmmVM+Lf0bbzM8NvRBSWz81ZyaSmLIyRVyZngUJZu/NqhCO0hivl0zNOkNa8+ApMAfFgbZoJcEl3ws
+ w7JwZXwum7XV/N1/bOziziZ7e8J1KRpwu1P5h7fkFCgcUazlI8biCEGib/oT9DxAQ5ARf8cBrIJrb2l4
+ /isP4MhiKyQ663gVMgBPuPtx/OoTDmJnRbQp0FrL8whdaG2xwr1vvwmsBGpv+OkpAABce2iB646sEWwV
+ Bjo+U04M7UhlwP69wJ+94GrcdtcAm9Gn21wUCoGuBnz5iOAlFx/AQCyzPtle2fC8LBYAzzFB0dEo71tg
+ 1MdpZHyOU5XsFOl4LukpKD0wnbRUk2TLtmDlzFFbEEijIH2PG8LMJpM1Gl2H4WocPJhC1II4A6E2z10Q
+ NwgNIEWu4k1CLzQMkwdkOkLOxfNsgi1pC7E1oExoPFvPDg5KTj7bmg537NrFsMgv+1l9M+mBBA3cUYWW
+ jlAS7oq+FeqHOeYUJSQ3DAO2V6MRPu+Vt8VxybB0rthKB+AJdz2Klz7hFuiW7ZqIbawjtIyJp53NJb7/
+ ThvwI7MkZuUBwYe/vAe7+6RdVehaMTo+PrZz+h7Bxc+5BueKQLXn7o14QUixQfCljTW86JKzsa3oqYjx
+ cOxIiX38em670WA7ZYfhnCglCD3TqZFKvoeXFZOjJ3FSR0lPWGFMZAO1mtFBOX2J1Hmy9Znlzjopedwc
+ v3gy0fWfHTpi32j0z7ZXIlzNkzN0zhtWPBqSI4j5srJ/rnhYz5vytDsxtnhajkQluk4NxvbuVyyLUVln
+ Up3k9YhWSlMTn2IlYojrhgC8DXFheL7aL7e+Lj0ocOMtimddfDYOcg05W0VQA6jg8Rcew688/iZsbxNB
+ xicPKgLsNNzvjidIMZxBwABc+t09kxNkWfF45U4VkKY4fZ/gj59/Hc5dIy3R/Lzn9YPg0uPAL7/iDAyN
+ GFSUefLDyklBSjio+C3ltGdztl5TIoAO4bDdEWd9cupsIroMbzKj5OiI43S1HpIco0bk7vnNTLx/IqV1
+ xFrrsQZ0ZwuvRIjY6U9seAjpspJNDDnuMeVT37cRTHIBEBU2+2qwznZ1+QaZlKcQHHKfELRx1RprjibF
+ puFYjiz8iFAUruoelY+RQlCNgacLpoCcvlBljyOA8b5Bq0LE+NChrgLYHha4/nDDL77qHBxtDdrm5j4U
+ 9nJW3W543F1P4NeeeCN2tgORuT/tcrvf3TYwHFtkR9jpW5y2wqe+uAvqoTtWJUK+rB+CM3cL/uy51+A2
+ i2FaFp2Uf2zjS8cbXvKKc7CNBgwC2LjqbBarWs3VyFb5jdBFZQmuRxueY0uDvYwlrheT9jS3nE1IM7pF
+ WyOKI+YjhiFeoMthM/fLw4zaBNsNGIVFrMCZ0zmA5WCXdIfBGT2dciPvwPNTiiLEpiidtahMzEuzebkv
+ hcYLLPtPS1gmFwV5r7RElpYHDYWQcRI/w4lQJNe6ZATACmxE2kiPtVOLlAjV2HjiVV+seHZ/F7RkWnyO
+ AGGkYS+CG24BnnvxGTgs2t+jWBGMgMr58IS7bOOlT7gFO9stnFX/WS6Ae97uhO805IAqg+Kq6xe4eWMB
+ XtbyFRgfhxmpYtdC8b9/6RocWKO3+zCqQNArg+Cyo0u86OXnBh8VMVlJKpwqAzvvfJKV5ClkRG7s4PV0
+ RmtsEDIdV5he6BQjtLSsyHMnRo/mz4hJWK8L8PBH+sYDcsuie/qJ0KJEi4915sdRjURqZa1L0NaYguyT
+ 6IkC4xIK42stPKUxbvxNjHYkzzCFN63wJEwMJEp2ezVdsj1SJCaQU5eEg+Jv33E1cG7EYiEj0BJfyrIl
+ 6m/nAeNZjhyBGnwIye/aGBQrLHDD0TU875KzcEQaxJbKjFfFMAcd8NN3Po5//6ANLGG1GuPXW5uCB91p
+ i3I4chAL4KNf3Yv9e1cYZHSAzglOu/rYZAX8yuMP4TaQfpAJjVvIE4tgIYJLjzf8h4vPgrYBK0JL7oCc
+ R6xj4QwHTcqas0RCDhQ/Qqc9sIjLMsHsmjKyJCRWHTLCVUJ/OTilrIYqPH3IRgfZC1UfZB2i1a3RIQ1O
+ MKc5wg9F7pLSGNbF5h2Yd5XSEBlPAq0UQf0+9rDCfiOX+Vp09AjuE1VIxpGcgp+EMhZipCoucxBzhuiC
+ mvGTBPuSQ0rKlxUkLXl5dCxpCAdnjfZLp/Q8JX1FEVkRhgG44bDgua88E4eXQynwSUIAMCKpC88+AVl2
+ RdFx0mdnq+H+dzpu4gd6JjjO2Cu+cPUCO4Mdu5XLUF3ROi+ObSzw7+58DLEjkYbpac5Ys/D5Q4KXXHw2
+ bWSaysT1M/E62qwFZ1lbPc8iVMB0wA1CqC9GClmGAl7Pz68G7+MiK6eEMbjmkUrB3spqZ5qnvjNHnwvz
+ KDND3LkGwWlO0tER6RPnF2KSRyi5jc0hXP/seQgo2rrOqxNUeJO9dIkeAX9p1xN5w2SyXnVEWzk5MlC7
+ PiMMzQrGU6pKdDJvO6F1eW+yq46fqXm+w42iT4R+eM6AhYXCc5dXynUXuOHQEs/5s3NxVMc3MjsJLDsV
+ YF3x4a/sw8724EgHKrj/3TYwHF0EZKZMdHnqgH/94v4ebUntPL0ZkkPYvW/AP31z91iqy2jEo/r4+rDP
+ HV7Di195G2yLeuYRqcnJogtfr96AAyrJnszI9VmKQhIyzW0xkgxFYdgd/KCa0xn5eewxfSDn7sVGrOde
+ jFdPJ84/Xnhn4zX/Y0uTkyAyEUnQKrnYrj9odcy5oUCxMiMLzsmoReqoCi4VU5AKpiYpZxq31Fr0Cb9v
+ kSt14XxR1odA7YkTfUg06Jh0yoL9N9dY+UKCYJku76Qgyun5icFzAgwYFLj5KPDsV56JQ7IKaCqxEart
+ UvzmX56OS69cji+t7WNbtgH3vsOJcTchcc7eRXf5NbtweDVkH9Vl4Vz3arhx1vd3/vwMfOWEYMwBM5NE
+ gc/ctMCvvfIAFCt3sG74JifJPKq7QccqwyppSTwddEisT+Ihx+8BJKUT4gY4GkaMw4akGK+b7ho/JrYC
+ Qm/SpUfBzRxfTjnjuahYsPmmqEQd6DVZKeByTQNIbsSDinC7xBCKaJGDmTaj5GzjOrmplD8KPdMJtZgT
+ ihuMz7bE8528+j99u5ASPbzEGD6G8QpFi5loTcnjTIrDHKZWq8NQOsqqon92NvyIo6k+jq5BXFdgjmBn
+ aLju8BLPu+RcbCwX3riqArsUv/6eW+PDX94FS/wNXW2sGu5zuy1II8MT9BeNAB//6m7s26W+ShGKk2kL
+ pzCeSfjLlxzAVTsCyKK/urIB2vC5W9bw0tcewOYwQHkrOa+WmMpbBNTgEe+cTEmRGTChy9h8kw0g+fom
+ fZKZtmtTMQ8j6NC/ECzVkRatpHE4gaEaE9RB8le/HjLkaaLgBWIfQno9kIfmTL/ka4JMCwC0lB5xlLTP
+ 5i3M41Um+T7xuFgKxBI8TXDNdYBKJK3UstHdksyQxpwVx41ElbztlEkMDPimikoAOxY8ork9HzZtS2TU
+ lsARS5qx9dWEjGSU6bPAp+h1+ayooNWNke/XH2x49qsO4KpNgdx6haNL4D++/Qx87NI9WPTlLS88UsX2
+ xgIPueuJmEMp2vGF7+7CttKkF8mSV05SfqqCrZ0FXnTxOfjkdQ3L07Yhp6zwoe+s4aWvORMrHSO4TVwN
+ aZmZ+G2Oz/WCiWPkVyJFQWqmA5GGwJ/3iCqNHDEjgcwXPusg983pZ0TrqIWhpVO6nU/4MRcrCCN3x8oo
+ VxCwX4C1tbUYuoR9lMUjYg8Fm8QjYAmiz41DkBRnEukTLB4HvmfXLrS2wKA7yYAS9PGlE9DSG0dtm4zT
+ XOzCPJdoMxt6wQ5cbETVT6PfYC+lOWVw8TAq1fzy4eLNHZH4Q9Qar50n6UR9gQkxLQ50EtUrbUg21Ocg
+ gmtvanjyH50HGRQ7g2DP3gHSxgq05FwB3POOW5BN0Ok/wbPFqSt8+ou70dYUAwUCU5aQQ49UEr8HAIdP
+ AC997ZnY1UaHuCUDWqkXYMcxqS6UfGvoZIbsoUe8VSbnWULtZ6dOm26kzBP4dE5eEdL0rNmpOYZ4acnc
+ 2IT0Nf/k8mBHfY2OwSf94QB4zlkHMqjMyjqT/mgOHoQolszGBA9Y+MW7CuC7xoy6825zrh+aGN4QBGGC
+ JHd2tNUsvdqJFD0EbRZgUC3W7jNMZEVyL5VAW5KMXw3HFJDMaAMJnhkeVhFHlGfFDp2MCJE3ksQzaVLH
+ 84LgXeS24kIc837BrrUVAGCXxxQzqpBtg+A+dz6BYSt27Vk3TYBLv7WGnTaePMTQVVx7OFXLMEqHUR7L
+ NUAxLvE1lINEqS5CSQxm/EXNIqWje4jJJc0TUv6SmCa9iHg4VjBGSorB6GT55jSQpqy7eNg95GcUOmaC
+ ZYXJHCcfE+7OmBSsgkpAsbOzwllnn51tEaEOpOE85PE6B8/+THNBKrzwYg5GcN7rEJUGde655+L4xnG/
+ abLuXn4r3ZfgOyLdmMT2SVTiCKcEhyjHY5ZoROoEL53pnDwG2/M7/5jrMzyKQZW1YIOGZPwMUamPuUkl
+ 57s/XFRDGhSt59ljw4nmrnhX3rSOxR6Brhp0EAxo0BVwfA14+YfOxNqyePr+MDuq+J7iUt90pDqe7c8r
+ PwHtw0jjvREsew5fku5nTRamT+AGnMyeECrTasHEUkvbOMSGgao209ZDz1gnJar06n4NDpYRi8Lg7Fgy
+ dy+04hXL8IKNjWO4853Oj4Ydls6IzeQOJHpCbxVy6JaDXstQeJd03WFDUUQrzIEKvv8Hfxj79u9PrPL7
+ aeIllSoWJU15M8FpqFVzBRNzaoHpAAw9aP0bkx9WLSs0mkQep2+Y8qJ47yQczu9QaSO+Wh99gifvZ8+T
+ gTUFC1pJwyrt4+Bw9q2AB9/9OPYsBmwDOL65wAc/sw+bGMYTivt4IkVWV/hqZGbExtsa0cHjclifITvL
+ lI0mvrdrSm3V49jmfyY0F+jN28IznzMfGX35832wOR0A/V3oYvApAfXTm6XdFiNV4cd3tjbx8Y9+CMPO
+ zqzRlymrif5WoSztaYdDZqS07jlCfoa6oRCQvsts0XCnO98R115/49yYEcs/GvaRDNxuo1yK8j5/oQLD
+ YY2owsyv6Yb1b5FnImBXtAGQ5u9f52DnOqrqE0gVrtKgeo7EEk9dOW2TwpY05qBx8EIbzjXCs8cwh8gb
+ JUciANCF4LojwF/+8z60XgUyDH07N5pPXjFUBTlankvh5NHnCKZB2NlifM8BgOQ1G4Q4xYt7BofMAaeT
+ KXrqRoRZ6jATAMbuKTySk7foaw47HGQpBJJwAj6fpY510/cY1J0nDC1ZcU/K+7OTu+997oWdnZ3yUs/Q
+ 0UCUM7o5QbFSzgTkSZaMGDIdFLHGElqBDgMeeP/7wxdCKJ0IqEvGmgZIBHKHlI5QggcvXZWkgu4C0lpx
+ geW+oaLMOrGipCKcfpcvv9CSEdM9iUGS6Re6l69TjVPmtZsZyc5cu2coVapItQS57LOmboph6DJJXJN+
+ sCqdWUcs9CU6RDacFKWTFCvZVCsv0tPMMNq0ioOwvyiDxnTuhEctQvIMtKqW5lFYlfQgwjg9gASmsA1C
+ rIKWNjA/k7PWaRqSHIJDm+q0NemajTekP/5ureHe97pn1iXT3xnYngImZn6ENgMpsk67PJS+JE4ku+wf
+ Hv7DD8NqtXJjc+NwLs6cKosicCKAJ/isYzHFYe+PdMt4jV+u2e8NYFBOlKOBj/rUj2EmjzpZh/b7u5mI
+ ZvrZ6yYBBW9qrp9viegxC3B9/KQ8jP34mikj89KdGcuaPXYw1LjsBsBGQDC1Trm4k6D5jXFlqZHB0cqP
+ oz7qldfH2XAY886mEHkDVGJ01zfOykzX0iacmsOkZnqpdMrdqLAKtCyYgldWA3uORxiuU/xRgWJ7cwsP
+ /6GH+XPC9Mi0fcxcDsGN+tqSXdcxsrzdQ2jiTwwC+L4HPQhnnXmGNx6MDqXx6ST2+iSAqnZ1Hd3kTTrm
+ dEf+o0WBjEni+h3CzqxRFzYpVYnyie7B6JQsiJJ3ze0FSIrsX8VqhBudR3sTCKU8FOTSq8xJeaLLBKkS
+ FOcI6w6Z6JKkweqkmKMe25DS15xe2lbqCK+Wh+d0hfAhrS6Z4XoglaDDakcsDTAiY/YijDEq7EI/IvJS
+ Po5Aflyh5zwosTXl7RwHuxHlrbkB9f/fxq4mZturKM/c7/e1FUgAWxNSDDEIRbbG+INQaJC4MFABf9to
+ mpC41BBICtEFxr+4MyYqC1B2Gow7g9GdxqhblI1Gwb0FmrY0lPZ9xsVzZua6rjn3V15Svvd9nvs+Z87M
+ NTPXnHPuczcr9tYp6P4SYQ899L32yCOPMH6CfRD7nCwAJ9evv9dRDGgtnMGt/doYEVrL5D63t6/Y4x/6
+ GTuO3rabxi4KCwDCp+yKnjNa9rUM/iBX52F0mwm0S0ZbjM6tHGy/h+v8PYhH1+PQIH7gUsAg7OyPZbVq
+ dlwMexwdml79ALuEaB4cgLCMMO6/ngyAzMVZSOGOey5V+YifADyBXjAQE+20NR9joDc5C4oYDTqXzgUx
+ 3Ub6TAfDSELCAJrX1f+gnwsFTsB8g5OCih8C6MXk+l0EMWQ3M7tz94599MOPW1xuKZmp85KHqS1gojHH
+ dmQGHTUENuznX3Hnbr/w8z9nNzcUg61r9TbmOKYrKbdknoEtKEfq3ILcXeXe7ThE6ypJWj19bwO13uUO
+ 0ut6N0ZsNXw7ZVPZbC3bpPk9YQlYA9Ax4G5rrqyzznxQJITtGMm2LSPUKzb0lAIohcwN0GQvAxqO17jX
+ WIq58eGX7l577rODkW8F3E2b5SEwsKGXJaz6KXYhezPys84vYGtgILinr8MkqkQCTLK8YhWNl7xOWwkz
+ i9tb++hHPrLKJ4PTmjjWk0kh0Nf7GimZr+dAsf8C5w4oiw3E+K4/vO/OHfvVJ5/gglaiS1jQCz+yoVwO
+ 4dq4FY+bbTK7N72CzJWZtJQZImcu/1w6mEAdh4MmQ66MRWu0QtdqLDUEDGirjfB16hFmPp/XJ5jTBytY
+ xzBwj72BjOEeMzVpfmt4XZnosqPTZ+u4lYjODGORqBFZLggpKTuX7YIATQ4MJUOArbEdrMdpMw4G9xKr
+ n02pVrdBD5b4VvZmjCfiuJypN1VlQqiyScolN5Dt6gs3Nzf24Z/9oH3P/fe1OpWpinF7h2nblpjr+u/A
+ MQwtgr46mxqfBpXfQ0e/8uQT9vCb39TAAIOU024ASM9wlwHDLKZCabBEujBz5PcumkrGcFhNBjnMVgfK
+ m+MDytXhv5hDarxjgZdDaLoK6zMNrj+XAlCkh5RGYliZ9icsuepA1tJTBkXUaMYgDnJ5Ydk4gnRINXpO
+ PKZzgT4n74Qt3WVknsAtGSEw95ZVqzcpjXLN2MmZMrcuaaNYBS805PakiBYAA1z1Db8XFnCWJEicXD70
+ 0ToHy13wijC7c7h97KmnyOl1P1aJCVjRwFX2hDh+0JK4UoG+mzI/Pb/hZvk2mRLucmu/9amn7XL7SilJ
+ 67fRjzILvMPlEUkIBprNMBNeh9PG7yWnvq6fre72eklUjF6fMxA1CGR2dFsTUxven2+YqZZgHbtnk5u6
+ AsNcxgYnds6MqeSmuL09+Ki1ZpanbIRr9bjslkJkYHHZpFJDidbhuo5Rz/s5BnDNa88JJweehiRbgy0w
+ u9Mkb14LG6866J6HAN0QhEuFtAKSglWA7Ux51UeFV5RKpSzZSxeXW/v005+0Bx64n2g/tj0ZqJFMJRvV
+ JtZ4IDYaQ/cg6vho7NFOdbzzHe+wX/vYU3a5XFoAvmgFTlmfBW302YSczbD+ypqv1atwEVCsLF0zxsA/
+ e4+X9RIZyM0RHE4lIkobAO52qNY6Bq8Ap87TYXKgUboK6TezmHdDXPxlHKpsncep40lKwkpobb415qJ7
+ +syC9b6SAXo4zpWYZVBup+FThKJARfeU3PJDwJESJ7wmH2seKO1ay50Q3IF18OjAc3x0DjhdHx0zkyty
+ NGQlXvHEpWsADnv/Y++1x977qGEJbNZ6dulfdw4qe2yZrxccYNcZmdvyMEnS0YZX2Jz0aHaxJ5/4JXv0
+ 3T9ehk8w9v3eDwSZuhgDoteL09mc5KxaypvYNWuRjSS406r8SUqVwMHEyPw6CVfzDFLvdhcSJQuY7Spl
+ CyQN1nrHWWI6oZYSOQQN71BYgQVSlZemINj69WANJtMt87UZLFF4Z597a9zwOwiuGIijdK7g7cdke9/I
+ DOrl/uC4Dtk372tOJce/IbaHt3TphOQY7d80HnRQgR+SAI4LWIUXvhDv1w06b3nzw/bppz/JWMMKEfhP
+ M9uLYDAAS2iJ6y/HCKIdHAFd/ZUeoJj1SJy8RO53PvMZ+7Ef+WG7tC+X0mtXXuVylbRnS1vZbuppTAO7
+ 5uONGWYGO9xoSQQYAU72DZq6AU1/58iQKaOgjA1QABM1bPA97LaD+YW+1K33oqe9kZbKfnKg2UlnGeax
+ SpOjd+jKpGwHLQgtQFh4/2BAPyxXttsbZmb7PM7Wq0t7MCS+z/temmjTORbYnp6psVnr6u0SHGRgFp+D
+ dafAXKrEpb8ce/Ef8s5rX8fh9uCDb7Q/+eM/sjs3dwzEgn1Y8rCbtx1plzviGMaTt/U+gGw4M6KZETLF
+ gevjTflUNWqYRdzaH/zeb9t73vWjFtd3WUPEbOfkDAxUTWh/L+n4AHsOr/Eq8w5oCIec7JxpwNKNrnsp
+ JgwyAn4F7QQDGXeKNSjyUpyzgKU4kL0yoguNrkwJ26RhphrHzIMM7s/z2Xd4jNf4abWm1agnfuALyzg6
+ YpwUI9R3ew0Ewom2uhY3OwW0l9gd9wYict2BJR3MBY3lsauCDNJK6+iADV0hsmhws+uE9HWuy+wH3vL9
+ 9rnP/pm97rWvRTEFXzjhzBog1SmMjRmCP/fss9HisyGx9Z7bClIE3wf9cGIwc7e//OJf259+9nN25+aG
+ 2ESA4jSyU3b39CmM51hx2aYNJaEN4/wwImrrvu7Yo3k9ivAtF7m+ZumU2eFBKzVSxh3IiHi8FRu1mcpg
+ b/p3Zo1850E+oLSTp5VbwOanJ0F7cB2+CZkessp+L6g/QSZMyNETjQAktFYMPWxsUUF3h0xRkLA0c25D
+ l2TLjgY6NBMEAIMAGXFFQuv0YqRxsQ+8/zH7zU89bblETfsqsBILEpp/NAAQhlkt18eBbdNBKcmpHwoS
+ EQtQ3t8PIHa9Z2b25a98xX739//QnvnGNymbBoKumtCnzrgTV9DVPXOiylR2IIxNtFtT9NTiBkSqp5I8
+ RExihQ2O8iHv9gpoIifp1YwzrGiMAhEl2QlCqqlV1uB+Zl+qBRw/1NvGgaafkEPb7tPPkFFsgGPFF7vQ
+ VY5McTEbLFdHm1IpgREpGEGQTmbaE6bMIJlMOjvgKiVuDrNPfPzX7ac/8FPtF7iyNOy08XIJFkNbA48Z
+ AAImRjg5DllU93otOdsGVBZmL738sn3+L75gf/XFv7G79921ywVorqMZgoDAn2cd2deVoYCaqai9hVSh
+ hXA75UNTodb2YXp8qhWm1V4ufpXrEteZZJqExGYgKAy5WVoNgupU1RLKG+2knYFlw5PPPhL4rdsWXCGA
+ u+coUEx+tsn+wExgyMhJNR9bBoHKVcgOWbouJIM/IRCg9OI04BMMmuYKDizsO9/5jr3v0XfbJz7+G/bG
+ 179+3q/ZfwvE3b/AxFyamwGA5d8CH7iwBDEziOicdTCC8k+Y2f8984x9/s+/YH/39/9g9z/wGru9fYU2
+ riCoEC6Dvi/t9MtDCN4NAABgaoJNz1HNoU1yFtsOCVpvZ3Fw5mvGh7wpTmaWAWQ9iy5shGh66VjvDVCP
+ l46Y7aiN0/F3PAqAC/BHRzFqXftxGCeUWRhMYsd7MO9u+tzgsAM8ogQTifoI9t1BGGfZUY9MmDrA8OGv
+ ei1ncLfrzr4XX/yWPfboe+yJX/5Fe+cPvYPa0VUKEtrm74MQbAe7b8+fWyVAtQesf2j3FPPQAwycT72F
+ Thf3Db/OOj///Av2t1/6kv3jP/2zffnf/8Ne89rXmbvb7e1FJphY/vn3pCq0RJWTgKktCgK7kgFzlfa1
+ z+4FuGIaAoT1QJJaTU8y5t/UGaXUIFdpWfCZiGEyoK6sXZGNmDYssdUJTeuuUu3M7SnbqPHvhVbtF706
+ sHhgRpOrJf3QlJeNaZzotIkNST6YOnGTFjZ9wfJijLH3lBzu9sILz9vb3/Y2e9+j77bHP/RB+74HHzLz
+ 60nJUElT7Bj4oY8gKefl6hgs8lB5TQIK8jjC7uqQdcG9ypF9mQBOFQXV2pzz7W+/ZP/yr/9m//PVr9p/
+ /td/29e/8XX72tf+11741ot29+ZmTSzFcuYFBJhp6jPUDpKTxnRZ1yP1LlCp9sFB1599apLBPvkFlOUf
+ 5DCYDzHKwyoG0+BZgHR/Vzn7hKCjerhuo/VMS03nU1/LLnnkGVtl/e7b3peNuhQIv/ac69zHcZSe2u8g
+ XELZpfsomhHljXkaT7dP788bQUT9oguNq1MCRsbFPezLhTcg4evrEN9xuZgffeQ6blyKy/UtTJcwe/jh
+ N9mbH37YHnn72+wH3/pW+8l3/YS98Q1v4KVmLMyJHfZYe8y7Uh0zdjY1WQcxcTAxTwImBsgg81+qOiVz
+ DeVa+aayKLouB5k74m4vyzkOt+NwczvspW+/ZC+/8vJq42J9dO4++rQetIByjAmWtdJlrYFHhNnh652F
+ G8R5AkSYR/5qxg8uLRt1ZpqTW+2AuSkEhoUYObqcaWOiRa0CU243xl1+OaRLBguheTpjX24b4AS0WtD3
+ 9lJuXpaAverS3Sx8hQ1kjsVE8BkDxwRnud8h6+fqGsZ5oR2E7QhUGpyUpEVgYYLZIsxv+n0GKRct2WZQ
+ XA59c3PY3bv32X137torl1vziCuTPeDUcQLfd+H4O0Zetsff7+H4gxks+z737DeD6m7kC5ssroIbKbYN
+ R3KO7+8ZDugHA5HHFbg6/pz02wYD55rcwAG3YWNH3UEvuowjd1Nglh0Z4/o6v8+aGdlZywQMob2b60VD
+ out92ZIyj330bcRtuFV2eoY5ih9+dr/ocWj41Yov1clcdqUSjsaFGVL1tXGKjk6gJlc/tAJv7CU8HYFv
+ RJFmSTscMTclw4RClwBx0nBF/o7W1w0LR1EZKts27ZAhpY4jVCB0gfaoNhgEMzwOkFA9KWbc2IMcTlWC
+ /eZ2Txr/ZhLHNHNwWaCml9wLUywOMvSAdqXhBkub3gS/fi4Hq4pRRGPdyLP72QaJTaVZ28WV5W70dp5U
+ dAzIEO8VHDUgaODlssYi1vHoF0qEyvRP63SZGGVjYNSURnb6jlf5LksXWgW4l5AjmUHtsbHIrF829oH6
+ aTh7dQ0TQPTpdO4JibPs9yoD3M6a7H52znF+zVYWCk4xHHV+dtb2PX6+i/HsmcNZV/rkIoCXbpC+IJ/s
+ gzher1nzTLY9U+HvduNBuf0et2/BL3LaxL+ZPLzTt3byuQcbcFtvXIYutI7fKRb60tHLlhkzDzt4iSOm
+ LMycoTUhwtI5mcg311V3XKPqD5KP+q8rRWmQV5Ehx21kCes3oeBzCBvgum/64msc/l+EXdYQJVA0j2Uw
+ r+9mKDzv//waB2OgMecPm2WGg0LiuqIfUrJ6kSj/BwyhBqMbt5lhDGI/KPNkTgwOs1E0a4bPzfShQSvZ
+ XE782as4KMoJnxdzjFZ5TkwDC/VqQ50s/YD37Lels62w3tucwZLUtKAVtOdEKd9x9qaXgQw85rptz78k
+ fmuADACnJmNiFUHmIsAwVo4SOra4Pks+aJo6VjpG3+fKPeuXkAGgcXbg2FAzirri+Ks9Gm6oY4AsFNx2
+ v+s957bF8wJQ2IOirlmAfndjbldIm0p+x6BbwVYDBfzru+8wS0twFUbgCL4ce+6rqOYmI8i+o8YiYHbA
+ 5tjyChqJliNlCeiCR6SPCwM0VvOjRC95IeurHCo3ms/7vkO8kge4S/Hjesmw5hOC6W8hd5StnSqK6mrU
+ ZyALciPndubjndYK2G7k4YdbykDqHGU1fKJvR9DBJTf0cGS61M051wensM6k1L+wKABrZzMOimO1IVvC
+ t8ISyECWdcgc5Y8cCDgTyZLBlrXcX60JWx/OhScj+UaH1v05ZnaHLCx31BixJ8lsWmlgmyOAwe9NMjaO
+ 2zEygwJXsOJnlQzy3s0moVbftj8xLumkg721YKfK2CVnjC7WGQiY7UxkMNARZ+AaXsKACIIXFs1pGXfU
+ fwxCsrwjWFLRaMGyGqODt5iArCDuSGiqxOynAhS3yROILUO5B2YDmr2UwGq2eXoz8x1Vi1tcD5pNwRbk
+ HmZSj8ITh1j31+pSqTFypA0GsB9KtUEEsGn/bCOwDTvpAnRCJKRU06x0l+yoGaTplcR8VjzG/dTcS7AM
+ AW2d+5wZBRjPA0GELV0UqDLYCGBQs4QhJQ4nAvrB8sVeaPodswMIvlvuUE0MEOKDo36u9AKp+oFb74E4
+ Sd3K9s8uwGxJXy3nPBlz+TjVmNMhHSNR8He2SiHNhcMAjm6yaYcYyqaJ+gJYAAVs+lruCbbHoFZws9Lz
+ iClHLqOWx3h34X5iiuAuTOWBqykwBKmF0OJzbgBVPqqiiGF3uhHwlo8ju4ok5POwaGMQIzw1ohhNfzC8
+ FS4gu+bzyAggUC5FbuPPomp8EExxsK0/dmPocwfoBglidbILMiOdcUWLlVECwMdCbbMZXYcnJa1ee2YK
+ 7mkQx4YhoL02XNMIYRv90FewE1Kzc13nmzJAg5vHvIlUiCjcsL/dJhPMA+pFuO0a9ECoKFtD+8Bs61zD
+ pe9AWcNEbpsYhEB3vTS4zwzyARN8FFwThw4213Eya8vj0OjdG0LyzK5vg5yJQ/RHg6QoAYAQmlL1mAIL
+ naeo63IqTAUU3JEKW4HC0bAaOLZg5boPje9LCTSJ5uD0BDakmpkZIb4X1erfsYZtX/cOkNWPn4pJWXoY
+ DdHPvDdyGyJda/29gVz0M7Nhj9ulnctyjiiHK3algQftX/7mHUCUSTi0U+UQOoRBRpR9GIopzXBrLsOX
+ Xav0Q8dd/dakKUKETCfsK53W+diwnoxsfGTbvCzpwJSgI5ShTD+in2RygAio+DBTOJDW+LfNBEXVgYGN
+ Ovvdrq5ZnzOtjtk4C0GDiGkB8IGYioMOAzOCIb0lgbjNDIIykz8yekZpSoJIm0EFE6lNTUnvQVkejz0j
+ WYlj7ksHmgh1F9MA86E+gZ9npiKUHGKDPoVvshYZfDpvBQ3RI9oHt/vi8nEGRIet0rrdcP2BE7ixEk9i
+ KRI7ABkXcVv/TtexrkEXkUEFjxCD4ApLdZwcd9wsxKxFvdqWO3/ZNuZ2YOSv4ECzzCmLpqT+SJPLmGgC
+ py3CsH6pFxOUAQ0cE6I91SgIEDWwlXF78NdfalWhqKoNZY44ZAx2fj8AeZtqkamabk5RS43NEuDcmHU9
+ Ocmu39QHoFYvs+ij0ZDyCrUjtlGhIUoGDqBEE62ZzZmOJAvgZ/hSABi/AxhbrQ5/R+Mr9RlgP5g7QGdr
+ M0s2KuwADSgR8AgzsR8y4i07Bnhkv7VEGe08WBavANmWQa7PukViSN/szGDrEOPaxih+lX9sc6NGvaJQ
+ iKMYTobzFn3wBGQ7rZ2J+iyALErrw2nOcBXU96YuaWVKdmHvx3gS3GAFHTc6dx8VgkDAzK9tQWeV6Xd1
+ HwaZsTauAAHF0yzuBhVJdUl+CQ41rwNMpBa++cBVDXTVCq3Lo7zKNjENtzEoWeaefmJ91lmdmBayCVTB
+ 1HWo91YfBIuNYZXpTEZbekCW6NAq3E9Hz8lMvkPTZGokiWBuhORxvfD6F0GsGm2KRFRocpNuAzKvbzBZ
+ l1T74EB0UQK8qSfWTfwTcGfY2LiEa9IYnbF+pu7buWhMJ/sIcFC9Sy74ZmAvzaqgtsTmKuHjNRu962Sd
+ 6d8SjNABqy/0AtAbLKs5Q1B04BK4pX9MPxHbg2RH0U4+M/kOFAWAR+eYhe2UBMBYkj3gagCOB6FAugKc
+ ZUCooUpQ2222QhMBsUO/2i0dY8DoVQyrJxGdLyQCOVjI+uVgIZzAR1EOfVEaRIpPg6fO2CFzkrsTlIar
+ Bh87cIc3eqa8Mk8yBGfZiI6r9oMyCFHMSgrRoKtAJIFjtRnoCJXB0oFhMnPdG9wpg79qcet7xKEc+0Ed
+ 0Rhgxx6WMbRSMUHaIklmo2SG9woQdJYeB0nxQpMAZ018mQdXEODdFIcm3WP8MoBpGbXYHDCFFBntMRS1
+ zYpi632AUoLXFUfrcL6tiu1z0vupWJ4MgEAuO4XQ0srGa/wb+nGaqeTPfpR3Q2Fr0KkRh6FLxgxsGJ0y
+ jDJcZWGhwZGntwgOa7zZdwOdl2ZONLzJChVKdNZ3u7kig1T+modr9t/TGKiQjrqdqQIoGOscJ6Ys5QQW
+ QIYeZRIGZBj/wlEkzR1ZTXcHkhKnPuX7yoaoSjUkrMcTDcZeMfatYE3BrUgYfE448e7beB0emcNQOxFA
+ GaCUMyzxiNJTdzgfFPOrAz8oWur89wnbVvNI1lsfxOairbOkUOiUEOnQiTBj1cchABHrOoAgnwGoR9Ow
+ fEgrQWc75pMOgSUKUhxol2SqROaVWVp27URS7QL52G6dwdtRNRrJUBaQuxjK0qLiT81G7easM2Tv2uGJ
+ vDvm50DDyb5U+zvp+zSToQfR6kVsVVlyDDaBVHwT3GrCDuTPoA5JoFRMXVIdwmSmbmVnqWKSHHc6vc9b
+ YYzqvGzZw/VG8ALY8cmbyFwAN+4F01AA40yspafXNaC6jW+Ru1Lmt4q2tLjV3BfkjG4bs+yg2iCDWe+q
+ o4EjfV3UsTI/9EO0p9vnrIhys/PSJFHwhGsPaROtt/MLQt10886oA8WZ0DERHMFjq8laZJMDsSBfeQ86
+ QrBIwygpv5UdvPaWiCOjnpE1RH80o57IaAb2Fkou0O2mfMy7Vpxxq30ofWO+dC1m78j8UIXgJ0R+1FHD
+ zOJiZmZHqGICJIMGQhvANUcH7Ai1iQRX1U+MOXLs6lc4mjLPYYjuo3ZrzRQ5QYYfFDMA4+a/AG7apw7U
+ Li0Qlu2sMRuAkMAEmUSzZTXHqNe5At7XLghAdBHqYM25xgbtC7BbHkxpOPEluqWASyi8fqSTSagbcpCc
+ z8k5jsQQYk7ocYANgWnQ03QaHxG39O8uOxlgDBo4qVrKBInvbaINgl4bN30ubSMmUZhIzBZPY/kBt0cR
+ DcSCUCN+ZLgNTxP0+7G1cajdFCgEH5ji3fZHc6XsTLCoVHAGMDOPTWmATn7GmLJjdMoSAWUGpJWs7ASF
+ G8kuftJt/UurBWptkEuXXoRC0ttkMWuCBFRDozoXZaxXsOl0dbGfNkevOsI5izQm8aBAeRiQHZ/wAR4e
+ PisOJknRgeWaGgoGAQTJYle8pwDFi12T829IsDmiML03WK2a5bdw1swo6mzz0wf/DwNfmAFVzLlaAAAA
+ AElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAO/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v8PH/7+/x/+/w8f/u7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/u7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7u/x/+7v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/u7/H/7/Dx/+/v8f/v7/H/7u/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+7v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+7v8f/u7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/w8f/u7/H/7u/x/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+7v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx
+ /+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x
+ /+7v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7+/x
+ /+7v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/w8f/v8PH/7u/x/+/v8f/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/u7/H/7u/x/+/w8f/v7/H/7u/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+7v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/u7/H/7+/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/u7/H/7/Dx
+ /+/v8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+7v8f/v8PH/7/Dx
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7u/x/+/w8f/v8PH/7+/x/+7v8f/u7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/w8f/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x
+ /+/w8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7u/x/+/v8f/u7/H/7+/x
+ /+7v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+/w8f/v7/H/7+/x/+7v8f/u7/H/7+/x
+ /+/w8f/v8PH/7u/x/+/w8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/u7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+7v8f/v7/H/7u/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/u7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7+/x/+7v8f/v8PH/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/u7/H/7+/x/+/v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x
+ /+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7u/x/+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x
+ /+/v8f/u7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7u/x
+ /+/v8f/v7/H/7+/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+7v8f/u7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/u7/H/7+/x
+ /+7v8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+7v8f/v8PH/7+/x/+/v8f/u7/H/7u/x/+/v8f/u7/H/7u/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+7v8f/v7/H/7u/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/v8f/v8PL/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/v7/H/7u/x/+/v8f/v7/H/7u/x
+ /+7v8f/u7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/w8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x
+ /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/u7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+7v8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/w8f/u7/H/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/u7/H/7u/x/+7v8f/v7/H/7u/x
+ /+7v8f/u7vD/7u7w/+7u8P/u7/D/7u/w/+7v8P/u7/H/7u/w/+7u8P/u7vD/7u7w/+7u8P/u7vD/7u7w
+ /+7u8P/u7/D/7u7w/+7u8P/u7vD/7u7w/+3u8P/u7vD/7u7w/+7v8P/u7/D/7u7w/+7u8P/u7vD/7u7w
+ /+7u8P/u7vD/7u7w/+7u8P/u7vD/7u7w/+7v8P/u7vD/7e7w/+7u8P/u7/D/7u/w/+7u8P/u7vD/7u7w
+ /+7u8P/u7vD/7u7w/+7v8P/u7vD/7u7w/+3u8P/u7vD/7e7w/+7u8P/u7vD/7u7w/+3u8P/t7vD/7e7w
+ /+3u8P/u7/D/7u7w/+7u8P/u7vD/7u7w/+7u8P/t7vD/7u7w/+7v8P/u7vD/7u/w/+7u8P/u7/D/7u7w
+ /+7v8P/u7vD/7u/x/+7v8f/u7/D/7u/w/+7u8P/u7/D/7u7w/+7u8P/u7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8v/v8PH/7/Dx/+/v8f/v7/H/3d3e/7W0tP+cmpn/j4yL/4yKiP+Lioj/i4mI/4uJiP+KiYf/i4mI
+ /4uJiP+LiYj/i4mI/4uJiP+Lioj/i4mI/4uJiP+KiYj/i4mI/4qJh/+KiYj/i4mI/4uJiP+Mioj/i4mJ
+ /4uJiP+LiYn/i4mI/4uJiP+LiYj/i4mI/4uJiP+LiYj/iomI/4uJiP+LiYj/i4mI/4qJiP+LiYj/iomI
+ /4uJiP+LiYj/i4mJ/4uKif+Lioj/i4mI/4uJiP+LiYj/jIqJ/4uKif+Lion/i4mI/4uJiP+LiYj/iomI
+ /4uKiP+KiYj/iomI/4uJiP+LiYn/i4qJ/4uJiP+LiYj/iomI/4qJiP+LiYj/iomI/4uJiP+LiYj/i4mI
+ /4uJiP+LiYj/i4mI/4uJiP+LiYj/i4mI/4uJiP+LiYj/i4mI/4uJiP+KiYf/i4mI/4uKiP+Lioj/i4qJ
+ /4uKif+LiYj/jIqJ/42Mi/+WlZT/sK+w/9jY2v/u7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/q6uv/oJ+f/1xZVv84NDD/OzYy
+ /zo2Mf86NjL/OzYy/zs2Mv87NjL/OjYy/zo2Mv86NjH/OjYy/zo2Mf87NjL/OzYy/zo2Mf87NjL/OjYx
+ /zs2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mf87NjL/OjUx/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYx
+ /zo2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy/zs2Mf87NjH/OjYx
+ /zo2Mv87NjH/OzYy/zs2Mv87NjH/OjYy/zs2Mv86NjL/Ozcy/zo2Mf86NjL/OjYx/zs2Mv87NjL/OzYy
+ /zs2Mv86NjH/OjYy/zs2Mv87NjL/OzYy/zs2Mv86NjH/OjYx/zo2Mv87NjL/OjYy/zs2Mv86NjH/OjYy
+ /zs2Mv86NjH/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OzYy/zs2Mv86NjL/Ozcy/zs2Mv87NjL/ODQw
+ /1dUUf+cmpr/5eXm/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/urm5/01KRv87NjL/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv87NjH/OjYx/zs2Mf86NjH/OzYx/zs2Mv87NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYy/zs2Mf86NjH/OzYy/zo2Mv87NjL/OjYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OzYy
+ /zs2Mv87NjH/OzYy/zs2Mv87NjL/OzYy/zs2Mv86NjL/OzYy/zs3M/9IRED/rq2s/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/w/4yLiv85NDD/OjYx/zs2Mv86NjH/OjYy
+ /zs2Mv86NjH/OzYy/zo2Mf86NjH/OzYx/zs2Mv86NjL/OzYy/zo2Mf86NjH/OzYy/zs2Mv87NjL/OjUx
+ /zo2Mv86NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf87NjL/OzYx/zs2Mf87NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OzYy/zs2Mv87NjL/OjYy/zs2Mf87NjL/OjYy
+ /zo2Mf87NjL/OzYy/zs2Mv86NjH/f3x7/+vr7f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx
+ /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f+CgH7/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYx/zs2Mf87NjL/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYy
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zs2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OzYx
+ /zo2Mf86NjL/OzYx/zs2Mv86NjL/OjYx/zo2Mf87NjL/OzYy/zo2Mv86NjH/OjYy/zo2Mf86NjL/b21s
+ /+7u8P/v7/H/7/Dy/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v7/H/oqCf/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjUx
+ /zs2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mf86NTH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv87NjH/OzYy
+ /zs2Mv87NjL/OjYy/zo2Mf87NjH/OzYx/zo2Mf87NjL/lJOS/+7v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /9nZ2v9APDj/OjYx/zs2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy
+ /zo2Mf86NjH/OjUx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NTH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf88ODT/09PU/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/fnx6/zo2Mv86NjH/OzYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zs2Mf86NjH/OjYx/zs2Mf87NjL/OjYy/zo2Mf86NjH/OjYy/zo2Mv9+fHn/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x
+ /+Pj5f8+OTb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjH/OzYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/OzYx
+ /zo2Mf86NjH/OzYy/zs2Mv86NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv87NjH/OzYy/zw4Nf/m5uj/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/w8v/v8PH/rKqq/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjL/OjUy/zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NTH/OzYx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjUx
+ /zo2Mf87NjL/OjYx/zs2Mv87NjL/OjYx/zs2Mf86NjH/OjYy/zo2Mf87NjL/OzYy/7Oysv/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x
+ /+/v8f+FgoH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zJgdf8oirv/KIm5/zNcbf86NTL/OjUx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx
+ /zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zs2Mf86NjH/OzYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy
+ /zs2Mf87NjH/OjYx/zs2Mv87NjL/jIqI/+/w8f/v8PH/7/Dy/+/w8v/v8PH/7+/x/+/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7+/x/+/w8f/v8PL/7+/x/+/v8f/v8PH/7+/x/21qaP86NjH/OjYx/zo2Mf86NTH/OzYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NTH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy/zkyL/86My//OjYy
+ /zo2Mf86NjL/KIOw/yCo8v8gqPL/IKfp/zozMv86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjQy
+ /zo2M/86NjL/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYy/zo2Mf87NjH/OzYx/zo2Mf86NjH/OjUx
+ /zo2Mf87NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv87NjH/OjYx/zs2Mv87NjL/OzYy/zs2Mv90cW//7u/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/u7/D/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mv8yXG3/Hqvr/ySXzP84QEH/OjUx/zo2Mv8uaIH/IKfy/yCo8v8gqPL/NFBY
+ /zo2Mf86NTH/OjYx/zs2Mv86NjH/OjUx/zNUYf8ipuT/I6Pi/zVNWP86NTH/OjUx/zs2Mv87NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYy/2NgXf/u7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f9iX1z/OjYx/zo1Mf86NjH/OjUx
+ /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx
+ /zo1Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NjP/Mllr/yCp7/8gqPL/IKjy
+ /yWY0v84PT3/OjUx/zRMVf8gqPL/IKfy/yCn8v8tbYr/OjYy/zo2Mv86NjH/OjYx/zo1Mf82S1H/IaXo
+ /yCo8v8gqPL/IqPm/zVPWP86NTL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NjL/OzYy/zo2Mv86NjH/YV5b
+ /+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/2FfW/86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx
+ /zo2Mv86NTL/OjYz/zFbav8hqe//IKjy/yCo8v8gqPL/IKfx/zRUX/86NjL/OjIv/yCm5/8gp/L/IKfy
+ /yaKu/85NjP/OjYy/zo2Mf86NjH/OjUx/zBlfP8gp/L/IKfy/yCo8v8hqPL/IaTo/zVPWf86NjL/OjYy
+ /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYy/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v7/H/YV5b/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYy/zo2Mv8xWmv/IKnu/yCn8v8gp/L/IKfy
+ /yCo8v8reJn/OjQw/zo1Mf86NjL/KIa1/yCn8v8gp/L/IKjs/zozMv86NjL/OjYy/zo2Mf86NTH/OjYz
+ /yeNu/8gp/H/IKfy/yCn8v8gp/L/IqPo/zRPWf86NjL/OjYy/zo2Mv86NjH/OjUx/zo1Mf86NjL/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf87NjL/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYy/zs2Mv86NjH/OjYx
+ /2JeXP/u7/D/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+7v8P9iX1z/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo1Mf86NjL/Mltt/yCo7v8gp/L/IKfy/yCn8v8gp/L/K3mZ/zo0Mf86NTH/OjYy/zo2Mv8uaob/IKfy
+ /yCn8v8gp/L/M1Je/zo2Mv86NTH/OjYx/zo2Mf86NTH/Ojg3/yeMuv8gqPL/IKjy/yCn8v8gqPL/IaTn
+ /zRQWf86NTL/OjYy/zo1Mv86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy
+ /zo2Mf87NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7u/w/2JeW/86NTH/OjUx
+ /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUy/zJcbf8gqfD/IKjy/yCn8v8gp/L/IKfx
+ /yx3l/86NTH/OjYy/zo1Mf86NjH/OjUx/zVNVP8gqPL/IKfy/yCn8v8scJD/OjUy/zo2Mv86NjL/OjUx
+ /zo1Mf86NTH/OTg2/yaMuf8gp/L/IKfy/yCn8v8gqPL/IqTo/zRPWf86NTL/OjYy/zo2Mv86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy
+ /zs2Mv9iX1z/7u7w/+/w8f/v8PH/7+/x/+/w8v/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/v8f/u7/H/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mv8xX3L/Ianw/yCo8v8gp/L/IKfy/yCo8v8reJf/OjUy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OzIv
+ /yGl5v8gqPL/IKfy/yeMwf86NTL/OjYy/zo2Mv86NjH/OjYx/zo1Mf86NTL/Ojc1/yeHsv8gp/L/IKfy
+ /yCn8v8gqPL/IaTo/zRPWv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mv86NjH/OjUx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy/zs2Mv87NjL/OzYx/2JfXP/u7/D/7+/x/+/v8f/v8PH/7/Dy
+ /+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/v8f9iXlz/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mv86NjH/OjUx/zo1Mf87NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mv86NTH/OjYx/zo2Mv86NjL/Ml9y/yCp8f8gp/L/IKfy/yCn8v8gqPL/K3aV
+ /zo0Mv86NjL/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjL/KIW0/yCo8v8gp/L/IKrw/zg2Nf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mv86NjL/OTcz/yeGr/8gqPL/IKfy/yCn8v8hqPL/IqTo/zNRW/86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OzYy/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/Yl9c/+7v8P/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8v/v8PH/7/Dx/+/w8f/v7/H/7u/w/2JeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zNUYv8gqfD/IKjy/yCn8v8gp/L/IKjx/y11lv86NTH/OjYy/zo2Mv86NjH/OjYx/zo1Mf86NjL/OjYy
+ /zo2Mv8vaoT/IKjy/yCn8f8gp/L/MlZj/zo2Mv86NjL/OjUx/zo2Mf86NjL/OjYy/zo2Mv86NjL/OjYz
+ /yiHr/8gqPL/Iajy/yCo8v8gqPL/Iabo/zZITP87NjL/OzYy/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mf9iX1z/7u/w/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/u7/D/YV5b
+ /zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjUx
+ /zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjL/K3eZ/yCo8v8fp/L/IKfy/yCn8v8hntv/OTg4
+ /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zVOVf8gp/L/IKfx/yCn8v8tc5X/OjYy
+ /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mv86NjL/N0JF/yCo7P8gqPL/IKfy/yCo8v8gqPL/L2d+
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OzYx
+ /zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjL/OjYy/2JfXP/u7/D/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9iX1z/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx
+ /zo1Mf82RUn/IqDe/yCo8v8gqPL/IKjy/yCn8v8lkMH/ODo5/zo2Mv86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo1Mf86NTH/OzMw/yGm5v8gp/L/IKfy/yWQxv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUy
+ /zZESP8jnNj/IKjy/yCo8v8gqPL/IKjy/yaQwf86OTj/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjL/OjYy/zo2Mf87NjH/Y19c/+7v8f/v8PH/7/Dy
+ /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7u/w
+ /2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mv81R03/IaHe/yCo8v8gp/L/IKfy
+ /yCn8v8kkML/OTo6/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjL/KIax/yCn8v8gp/L/H6rx
+ /zk4N/86NjH/OjYx/zo2Mf86NTH/OjYy/zo1Mv83RUn/I53a/yCo8v8gp/L/IKjy/yCo8v8lkMP/OTo5
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv9iX1v/7u/w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dy
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mv80R03/I6Dd/yCn8v8gp/L/IKfy/yCo8v8lkML/OTk4/zo1Mf86NjH/OjUx
+ /zo1Mf86NTH/OjYx/zo1Mf8vaIL/IKjy/yCn8v8gp/L/Mllo/zo2Mf86NjH/OjYx/zo2Mv86NjL/N0ZK
+ /ySe2v8gp/L/IKfy/yCo8v8gqPL/JpHD/zk7Ov86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/2FeW//u7/D/7u/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+7v8f9hXlv/OzYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYy/zo2Mv81R0z/IqHe
+ /yCo8v8gp/L/IKjy/yCo8v8lkML/OTk4/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYy/zZKUv8fqfL/IKfy
+ /yCn8v8rdZn/OjYy/zo2Mv86NTH/OjYy/zRGS/8jn9z/IKjy/yCo8v8gp/L/IKfy/yaQwv86Ozn/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx
+ /zs2Mf86NjH/OjYx/zs2Mf86NjH/Yl9c/+7v8P/v8PL/7/Dx/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/w/2FeW/86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zs2Mv86NTH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mv87NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv87NjL/OjUx/zo2Mv86NTH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYy/zo2Mv80R0z/IqDe/yCo8v8gqPL/IKjy/yCn8v8lkML/OTk3
+ /zo1Mf86NjL/OjYx/zo2Mv86NjH/OzMw/yGj4v8gp/L/IKjy/yWTyv85NTL/OjYy/zo2Mf81Rkr/Ip7e
+ /yCn8v8gp/L/IKfy/yCo8v8mkML/ODo6/zo2Mf86NjL/OjYy/zs2Mv86NjL/OjYx/zo2Mv86NjH/OjUx
+ /zo2Mf86NjH/OzYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf87NjH/OjYx/zs2Mv87NjL/OzYy/zs2Mv9iXlv/7u7w
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8v/u7/H/YV9c/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYy
+ /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv82RUz/JKDe/yCo8v8gp/L/IKjy/yCo8v8mj7//OTYz/zo2Mf86NjH/OjYx/zo2Mf86NjP/KYOu
+ /yCn8v8gqPL/Hqzz/zk6O/86NTH/NUVI/yKf3f8hqPL/IKfy/yCn8v8gp/L/Jo/B/zk6OP86NjL/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NTH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8v/v8PL/7/Dx/+7v8f9iXlz/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mv82RUr/I57c/yCn8v8gp/L/IKfy
+ /yGm8f81UVj/OjUx/zo2Mf86NjH/OjYy/zo2Mv8vZX3/IKjy/yCn8v8gp/L/MVxs/zo2Mv8va4T/IKfy
+ /yCn8v8gp/L/IKfy/yeQwP85Ojn/OjUx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/Y19c
+ /+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx
+ /+/w8v/v8PL/7u/x/2FdW/86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjUx/zo1Mf82REj/I53a/yCo8v8gp/L/KIeu/zo1Mv86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zZHTP8gqPL/IKjy/yCo8v8qep//OjUx/zk5N/8mjbv/IKjy/yCo8v8nkMH/OTs5/zo1Mv86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx
+ /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYx/zs2Mf9iX1z/7u7w/+/v8f/v8PL/7/Dy/+/w8f/v8PH/7/Dy
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/u7/H/Yl5b/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjYx
+ /zo2Mf86NTH/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo1Mf82Q0X/KoGp
+ /yx0lP85NjL/OjUx/zo1Mf86NTH/OjUx/zo1Mf86NTH/OjMv/yKi3/8gqPL/IKjy/yOX0f85NDH/OjUx
+ /zk4Nf8sc47/LHeW/zk6OP86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx
+ /zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy
+ /2JfXP/t7vD/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8v/v8PL/7/Dy/+7v8f9hXlv/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo1Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo1Mf85NTH/OTUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYy
+ /zo1Mf86NTL/LmqF/yCq7f8gr/T/JZPD/zozL/86NjH/OjYx/zo1Mf86NTH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zs2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/Yl5c/+7u8P/v8PH/7/Dy/+/w8f/v8PH/7+/x
+ /+/w8v/v7/H/7+/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/w/2FeW/87NjH/OjYy
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjL/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjUx
+ /zo2Mv86NjL/OjYy/zo1Mf86NjH/OjYx/zo2Mv86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx
+ /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjL/OjIw/zk3N/86NDD/OjUx
+ /zo2Mf86NjH/OjUx/zo2Mv87NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf9iX1z/7u7w/+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx
+ /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx
+ /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2JeW//u7vD/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9hXlv/OzYx
+ /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo1Mf86NTH/OzYy/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/Yl9c/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/w/2JeXP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx/zo2Mf86NTH/OjUx/zo2Mv86NjL/OjYy/zo2Mv86NjL/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mv86NjL/OjYy/zo2Mv86NjH/OjYy
+ /zo2Mv86NjL/OjYy/zo2Mv86NjH/OjYy/zs2Mv86NjL/OjYy/zo2Mf86NjL/OjYy/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dy
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/D/YV5b
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjUx/zk1Mf9xb27/jo+O/5CQj/+QkJD/kI+P/4SDgf9EQD3/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/PDg0/3x6ev+Oj4//kJCQ/4+Pj/+Ojo7/ioqK/3l3dv8/Ozf/OjYy/zo2Mf86NTH/OjYx
+ /zo2Mv9xb27/n6Ch/6anqP+mp6j/pqen/6Wmp/+lpqf/paen/6Wmp/+lp6f/pqen/6Wmpv+jpaX/n6Ch
+ /5eYmf+Ojo3/hYSD/3Bubf9VUk//NzMv/zs3Mv86NjL/OzYy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PL/7+/x/+/w8f/v8PL/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f9hXlv/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/U1BM/+rv8v/q7/L/6e/y
+ /+rv8v/p7/L/6e/y/5mbmv86NjH/OjYx/zo1Mf86NjH/OjYy/zo1Mf86NjL/OjUx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf9lY2L/6e/z/+nv8v/p7/L/6e/z
+ /+nv8v/q7/P/6e/z/3Fvbv87NjH/OjYx/zo1Mf86NjH/NTAt/+br7f/q7/L/6u/z/+rv8//q7/L/6u/y
+ /+rv8v/p7/L/6u/z/+nv8v/p7/L/6e/y/+nv8v/p7/P/6u/z/+rv8//p7/P/6e/z/+nv8v/f5Of/ra6v
+ /3Z0cv8+OjX/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/Yl5c/+7u8P/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/x
+ /2FeXP86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf9lYmD/6e7x/+rv8//p7/L/6e/y/+rv8v/p7/L/qaur/zo2Mf86NTH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo1Mf86NTH/OjYx/3Rzcf/q7/P/6u/y/+nv8v/q7/L/6u/y/+nv8v/p7/L/dnVz/zo1Mf86NjH/OjYx
+ /zo2Mf8zLyv/7fL1/+rv8//q7/L/6u/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z
+ /+nv8v/q7/P/6e/y/+nv8v/q7/P/6e/y/+nv8v/q7/L/6u/z/9vf4v+Pj4//Qj46/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYy/zo2Mf9iX1z/7e7w/+/w8v/v8PH/7+/x/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/2ViX//p7vL/6u/y
+ /+rv8v/p7/L/6u/y/+nv8v+rrq7/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx
+ /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NjH/d3Z1/+rv8//p7/L/6u/z
+ /+rv8v/p7/L/6u/y/+nv8v92dXP/OjUx/zo2Mf86NjH/OjYx/zMvK//t8vX/6e/y/+nv8v/p7/L/6u/y
+ /+nv8v/q7/L/6u/y/+nv8v/p7/L/6u/y/+rv8//p7/L/6e/y/+nv8v/q7/L/6e/y/+nv8v/q7/L/6e/y
+ /+nv8v/p7/L/6e/y/+rv8v/Y3N//bm1r/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2JeW//u7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+7v8P9hXlv/OjUx/zo1Mf86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+ju8f/q7/L/6u/y/+rv8v/q7/L/6e/y/6utrv86NjH/OjUx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/1tYVf94d3b/eXd2/3d2dP9WUlD/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf94eHb/6e/y/+nv8v/q7/L/6e/y/+rv8v/q7/L/6u/y/3d1c/86NjH/OjYx
+ /zo2Mf86NjH/My8r/+3y9f/p7/L/6u/z/+nv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/L/6e/y
+ /+rv8//p7/L/6u/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/q7/L/nJ2e
+ /zs3M/86NjL/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7v8P/v8PH/7/Dx/+/v8f/v8PL/7/Dy/+/w8v/v8PH/7/Dx
+ /+/w8v/v8PH/7/Dy/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7u/w/2FeW/86NTH/OjUx/zo1Mf86NjH/OjUx
+ /zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9lYl//6e7x
+ /+rv8v/q7/P/6u/y/+nv8v/q7/L/rK6v/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf9mZGH/6e/y
+ /+rv8//q7/P/6u/z/+br7/9OSkf/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/3l3dv/p7/L/6e/y
+ /+rv8v/p7/L/6u/y/+nv8v/p7/L/dnVz/zo2Mv86NjH/OjYx/zo2Mf8zLyv/7fH1/+rv8v/p7/L/6u/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y
+ /+rv8//q7/L/6u/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/ra+w/zo2M/86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9iX1z/7u/x
+ /+7w8f/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7+/x/+/w8f/v8PL/7/Dy/+/w8f/v8PH/7+/x
+ /+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx
+ /zo1Mf86NjL/OjYx/zo2Mv86NTH/OjYx/2ViX//p7vL/6u/y/+rv8v/q7/L/6u/y/+rv8v+srq//OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/7q8vv/q7/P/6e/y/+nv8v/p7/L/6u/y/5+foP86NjL/OjYx
+ /zo2Mv86NTH/OjYx/zo1Mf86NTH/eHZ1/+rv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+rv8v92dXL/OjYx
+ /zo2Mf86NTH/OjYx/zMvK//t8vX/6e/y/+rv8v/q7/L/6u/y/+rv8v/p7vL/6u/y/+nv8v/p7/L/6e/z
+ /+nv8v/p7/L/6e7y/+nu8v/p7/L/6u/y/+rv8v/q7/P/6u/z/+rv8//q7/L/6u/y/+rv8v/q7/L/6u/y
+ /+rv8v/q7/P/mZqZ/zo1Mf87NjL/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/2FeXP/u7/D/7/Dy/+/w8v/v8PH/7+/x/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+7u8P9hXlv/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mv86NTH/OjUx/zo2Mf86NjH/OjUx/zs2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/ZWJf
+ /+ju8f/q7/L/6u/y/+nv8v/q7/L/6u/z/6ytrv86NjH/OjUx/zo2Mf86NTH/OjYy/zo2Mv9cWVf/6u/z
+ /+rv8//p7/L/6u/y/+rv8v/p7/L/5ert/0hFQf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf94dnX/6e/y
+ /+nv8v/q7/L/6u/y/+rv8v/p7/L/6u/y/3Z1cv86NjH/OjUx/zo1Mf86NjH/My8r/+7y9f/q7/L/6e/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/g4OB/2JfXf9hX1v/X11a/2BeW/9hXlv/cG9t/4KBgP+foKH/z9PW
+ /+rv8//p7/P/6u/z/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/P/Z2Vk/zo2Mv86NjL/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYy/zo2Mf86NjH/Yl9c
+ /+7v8P/u7/H/7/Dy/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/v8f/u7/H/7/Dx
+ /+7v8f/v7/H/7u/x/2FeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf9mY2D/6e7y/+rv8v/q7/L/6e/y/+rv8v/p7/L/ra6v
+ /zo2Mv86NjH/OjYx/zo2Mf87NjL/OzYy/7CytP/q7/L/6u/z/+rv8v/q7/L/6u/y/+nv8v/q7/L/lZWW
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3h3df/p7/L/6u/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/dnVy
+ /zo2Mf86NjH/OjYx/zo2Mv8zLyz/7fL1/+rv8v/p7/L/6e/y/+rv8//p7/L/6e/y/+nv8v9hX1z/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mv86NjL/OjYx/zo2Mv85NTH/YmBe/8XHyP/q7/P/6u/y/+rv8v/q7/L/6u/z
+ /+rv8v/q7/L/6u/y/+rv8v/R1Nf/PDg1/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zs2Mv86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYy/zo2Mv9iX1z/7u/w/+/w8f/v8PH/7+/x/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/u7/H/YV5a/zo1Mf86NTH/OjUx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /2ZiYP/o7vH/6u/y/+rv8v/q7/L/6e/y/+rv8v+tr6//OjYy/zo2Mf86NTH/OjYx/zo2Mv9VUU//6u/z
+ /+rv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+rv8v/g5Of/Qj46/zo2Mf86NjH/OjYx/zo1Mf86NjH/eHd2
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v92dHP/OjYx/zo2Mf86NjH/OjYx/zMvK//t8vX/6u/y
+ /+nv8v/q7/L/6u/y/+nv8v/p7/L/6e7y/2JfXf86NjH/OjYx/zo2Mf86NjL/OjYy/zo1Mf86NjH/OjYx
+ /zo2Mf86NjL/Ozcz/6Giov/q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8//q7/P/6u/y/+nv8v9+fXz/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYy
+ /2JfXP/u7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/u7/H/7/Dx/+7v8f9hXlv/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/ZGFf/+ju8f/q7/L/6u/y/+nv8v/p7/L/6e/y
+ /62ur/86NjH/OjYy/zo2Mf86NjH/Ozcy/6ipqv/q7/L/6u/z/+nv8v/q7/L/6e/y/+rv8v/q7/L/6u/y
+ /+rv8/+JiYn/OjYx/zo1Mf86NjH/OjYx/zo2Mv94d3X/6u/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6e/y
+ /3Z1c/86NTH/OjUx/zo2Mf86NjH/My8r/+7y9f/p7vL/6e/y/+rv8//p7/L/6u/y/+rv8v/p7vL/YV5b
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/7GztP/q7/P/6u/z
+ /+nv8v/q7/L/6u/y/+rv8//q7/L/6u/y/8zP0f85NDH/OjYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjL/Yl9c/+7u8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7u/x/+7v8f/v8PH/7u/x/2FdW/86NjH/OjUx
+ /zo2Mf87NjL/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf9lYl//6O3x/+rv8v/q7/L/6u/y/+nv8v/p7/L/rK6v/zo2Mv86NjL/OjYx/zo2Mf9MSEX/6O3w
+ /+rv8v/q7/P/6u/y/+rv8v/q7/L/6u/z/+nv8v/p7/L/6u/y/9nd4P89OTb/OjUx/zo2Mf86NjL/OjYx
+ /3h3df/p7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/dnVz/zo2Mf86NjH/OjYx/zo2Mf8zLyz/7fL1
+ /+rv8v/p7/L/6u/y/+nv8v/q7/L/6u/y/+nu8v9iX1z/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/Q0A9/9zg4//q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y
+ /1pXVP86NjL/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv9iX1z/7u/x/+/w8f/v7/H/7/Dy/+/w8v/v8PH/7/Dx/+/v8f/u7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7u/x/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2VjYP/o7vL/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v+srq//OjYy/zo2Mv87NjL/OzYy/5ucnP/q7/P/6e/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y
+ /+nv8v/p7/L/6e/y/4B/fv86NjH/OjYx/zo2Mf86NjH/eHd2/+rv8v/p7/L/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v92dXP/OjYx/zo2Mf86NjH/OjYx/zMvLP/t8vX/6e/y/+rv8//q7/L/6u/y/+rv8v/q7/L/6e/y
+ /2JgXP86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/jo+P
+ /+rv8//q7/L/6e/y/+rv8v/p7/L/6u/y/+rv8v/q7/L/j4+O/zo2Mv87NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjL/OjYx/2JfXP/u7vD/7/Dy/+/w8v/v8PH/7u/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/u7/H/7/Dx/+7v8f9hXlv/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx
+ /zo2Mf87NjL/ZWJf/+nu8v/q7/L/6u/y/+rv8v/q7/L/6u/y/62usP86NjH/OjYx/zo2Mv9EQD3/5Ojq
+ /+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/0tXY/zo2M/86NjL/OjYy
+ /zo2Mf94d3X/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6e/y/3Z1c/86NjH/OjYx/zo2Mv86NjH/My8s
+ /+3x9f/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/Yl9c/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf9OSkf/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y
+ /+rv8v+0trj/Ojcy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/Yl9c/+3v8P/u7/H/7/Dx/+/w8v/v8PH/7/Dx/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+7v8f/v7/H/7/Dx/+7v8f/u7/H/7u/x/2FeW/86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv9lYmD/6O7x/+rv8v/p7/L/6u/y
+ /+nv8v/p7/L/rK6v/zo2Mv86NjL/OjYy/4+PkP/q7/P/6u/y/+nv8v/p7/L/6e/y/+rv8v/q7/P/6e/y
+ /+nv8v/q7/L/6u/y/+nv8v/p7/L/dHNx/zo2Mf86NjH/OjYx/3h3df/q7/P/6u/y/+rv8v/p7/L/6u/y
+ /+nv8v/p7/L/dnVz/zo2Mf86NjH/OjYx/zo2Mv8yLyv/7fL1/+nv8v/q7/L/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v9iYFz/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy
+ /zk1Mf/R1dj/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/9fa3f83My//OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9iX1z/7u/w/+/w8f/v8PH/7u/x
+ /+/w8f/v7/H/7/Dx/+/w8v/u7/H/7/Dy/+/w8f/v8PL/7/Dx/+/v8f/v8PH/7/Dy/+/w8f/u7/D/YV5b
+ /zs2Mf86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/2ViYP/p7vL/6u/y/+rv8v/q7/L/6e/y/+nv8v+srq//OjYy/zs2Mv8/Ojf/2t7h
+ /+rv8v/q7/L/6e/y/+nv8v/p7/L/6u/y/9XZ3P/p7/L/6e7y/+rv8v/q7/L/6u/y/+rv8v/Jy87/OjUx
+ /zs2Mv86NjL/eHd2/+rv8v/q7/L/6e/y/+nv8v/q7/L/6e/y/+rv8v92dHL/OjYx/zo2Mf86NjH/OjYx
+ /zMvK//t8fX/6e/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/6e7y/2JfXf87NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/7Cys//q7/L/6u/y/+rv8v/q7/L/6u/z
+ /+rv8v/q7/P/6/Dz/zYyLv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NTH/OzYx/zo2Mf86NjH/OjYx
+ /zs2Mv87NjL/OzYx/2JfXP/t7/H/7u/x/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+7v8f9iXlv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+nu8f/q7/L/6u/y
+ /+rv8v/q7/L/6e/y/62vsP86NjH/OjYx/4SEgv/q7/P/6e/y/+nv8v/q7/L/6e/y/+nv8v+/wcL/YF1b
+ /+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v9samj/OjYx/zo2Mf94dnb/6e/y/+nv8v/p7/L/6u/y
+ /+rv8v/p7/L/6e/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/My8s/+3y9f/q7/L/6e/y/+nv8v/q7/L/6e/y
+ /+rv8v/p7vL/Yl9c/zs2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/oqOk/+rv8v/q7/L/6u/y/+rv8v/q7/P/6u/y/+rv8v/r8PP/SkZD/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjL/Yl5c/+7v8P/v7/H/7u/x
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/u7/H/7/Dx/+7v8f/v7/H/7u/x
+ /2FeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv9lYl//6O7x/+rv8v/q7/L/6e/y/+nv8v/q7/L/ra+w/zo2Mv89OTX/1tnc
+ /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/2hmZP85NTD/v8LE/+rv8//q7/L/6e/y/+rv8v/q7/L/6u/y
+ /8HDxP85NTD/OjYx/3l3dv/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/dnVz/zo2Mf86NjH/OjYx
+ /zo2Mf8zLyz/7fL1/+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+nu8v9iX1z/OjYx/zo1Mf87NjL/OjUx
+ /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Xl5j/6u/y/+rv8v/q7/L/6u/y
+ /+rv8v/p7/L/6e/y/+rw8/9LR0P/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf9iXlv/7u/w/+7w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8v/v8PH/7+/x/+/w8f/v8PH/7u/x/+/w8f/u7/H/YV5b/zo1Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYy/2ViX//o7vH/6e/y
+ /+nv8v/p7/L/6u/y/+rv8v+sr7D/OjUx/359fP/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/Ex8n/ODQw
+ /zo1Mf9saWj/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/P/6u/z/2NgXv86NjL/eHd2/+rv8v/q7/L/6u/y
+ /+nv8v/p7/L/6u/y/+nv8v92dHL/OjUx/zo2Mf86NjH/OjYx/zMvLP/u8vX/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v/p7/L/6e/y/2JfXP87NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/52dnv/q7/P/6u/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/6/Dz/0tHRP86NTH/OjYx
+ /zo1Mf86NTH/OjYx/zs2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/2JfXP/u7/H/7/Dy
+ /+/w8f/v7/H/7/Dx/+/w8v/v8PL/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8v/v8PH/7+/x
+ /+7v8f9hXlv/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/ZWJf/+nu8v/q7/L/6e/y/+nv8v/p7/L/6e/y/62vsf86NjL/0dTX
+ /+rv8//q7/L/6u/y/+rv8v/q7/L/6u/y/3BubP86NjH/OjYy/zk1Mf/Lzc//6u/z/+rv8v/q7/L/6u/y
+ /+rv8v/p7/L/ury9/zo1Mf95eHb/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6u/y/3Z0cv86NjH/OjYx
+ /zo2Mf86NjH/My8s/+3y9P/q7/L/6u/y/+rv8v/p7/L/6e/y/+nv8v/p7vL/Yl9c/zo2Mf86NjH/OzYy
+ /zo2Mf86NjH/OzYx/zs2Mv86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjL/qaqr/+nv8v/q7/L/6u/z
+ /+rv8//p7/L/6u/z/+rv8v/r8PP/SkZD/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjH/OzYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/Yl9c/+7v8f/v8PH/7/Dy/+7w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8v/v8PH/7vDx/+7v8f/v8PH/7u/x/2FeW/86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf9lYmD/6O7x
+ /+nv8v/q7/L/6e/y/+nv8v/p7/L/rrCx/3Rycf/p7/L/6u/y/+rv8//p7/L/6u/y/+rv8v/MztH/OjUx
+ /zo2Mf86NjL/OzYy/3h2df/q7/P/6e/y/+rv8v/q7/L/6u/z/+rv8v/q7/P/X1xa/3l4dv/p7/L/6u/y
+ /+nv8v/q7/L/6u/y/+rv8v/q7/L/dnVy/zo1Mf86NjL/OjYx/zo2Mf8zLyv/7fH1/+nu8v/p7/L/6u/y
+ /+nv8v/q7/L/6u/y/+nu8v9iYFz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zs3M//Dxsf/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+zx8/85NTH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf9iX1z/7u/x
+ /+/w8v/v8PL/7/Dx/+/w8v/v8PL/7/Dy/+/w8f/v7/H/7/Dy/+/w8f/v8PH/7/Dx/+7v8f/v8PH/7/Dx
+ /+/v8f/u7/H/Yl9c/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/2ViYP/p7vH/6e/y/+rv8v/p7/L/6e/y/+nv8v+tr7D/yMzO
+ /+nv8//q7/L/6e/y/+nv8v/q7/P/6e/y/3d2df86NTH/OjYx/zo2Mf86NjL/PDg1/9XY2v/p7/L/6u/y
+ /+rv8v/p7/L/6u/y/+rv8v+2uLn/eXh2/+nv8//p7/L/6e/y/+rv8v/p7/L/6u/y/+nv8v92dXL/OjYx
+ /zo1Mf86NjL/OjYx/zMvK//t8fT/6e/y/+rv8v/p7/L/6e/y/+rv8v/p7/L/6e7y/2JfXf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/PTk2/+fs7v/p7/L/6u/y
+ /+rv8v/q7/L/6u/y/+nv8v/p7/L/2Nzf/zczL/86NjH/OjYy/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/2JfXP/u7/H/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8v/u7/H/7+/x/+/w8f/v7/H/7u/x/+7v8f9hXlv/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo1Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/ZmJg
+ /+nu8f/p7/L/6e/y/+nv8v/q7/L/6e/y/+Ln6v/p7vL/6u/y/+rv8v/q7/L/6u/y/+rv8//T1tn/Ozcz
+ /zo2Mv86NjL/OzYx/zo2Mv86NjL/hIOD/+nv8//q7/P/6u/y/+rv8v/q7/L/6e/y/+rv8/+foaD/6u/y
+ /+nv8v/p7/L/6u/y/+rv8v/q7/L/6e/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs/+3y9f/q7/L/6u/y
+ /+rv8v/p7/L/6u/y/+rv8v/p7/L/Yl9c/zs2Mv86NjH/OjUx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf9zcnH/6e7y/+rv8v/p7/L/6u/z/+rv8v/q7/L/6e/y/+rv8v+0tbf/OzYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYx/zo1Mf86NjH/OzYy/zs2Mf87NjL/Yl9c
+ /+7v8f/v7/H/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8v/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/u7/H/7u/x/2JfXP86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf9lYmD/6e7x/+nv8v/q7/L/6u/y/+nv8v/q7/L/6e/z
+ /+rv8//q7/L/6u/y/+rv8//q7/P/6u/y/4GBf/86NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv9APDn/3ODj
+ /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+vw8//q7/P/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/dnVy
+ /zo2Mf86NjH/OjUx/zo1Mf80Lyz/7fL1/+rv8v/q7/L/6u/z/+rv8v/p7/L/6u/y/+nu8v9iX13/OzYy
+ /zo2Mf86NjL/OjYx/zs2Mv87NjL/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjL/OjUx/77Awf/q7/L/6u/y
+ /+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/42NjP86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv9iX1z/7u/x/+/v8f/v8PH/7/Dx/+/w8v/v8PL/7/Dx
+ /+/w8f/v8PH/7/Dy/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7vDx/+/w8f/u7/H/YV5b/zo2Mf86NTH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy
+ /2ViX//o7vH/6u/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6u/z/+nv8//a3eD/Pjk2
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+RkZD/6u/z/+rv8v/q7/L/6u/y/+nv8v/q7/L/6u/z
+ /+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v92dHL/OjYx/zo2Mf86NjH/OjYx/zQwLP/t8vX/6u/y
+ /+nv8v/q7/L/6u/y/+rv8v/q7/L/6e7y/2JgXf87NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjL/OjYx/zo2Mf9vbWv/6u/y/+rv8//q7/L/6u/y/+rv8//q7/L/6u/y/+rv8v/q7/L/WVZT
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx
+ /2JfXP/u7/D/7vDy/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/u8PH/7+/x/+7v8f9iX1v/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx
+ /zs2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv86NjL/ZWJg/+ju8f/q7/L/6u/y/+rv8v/q7/L/6u/y
+ /+rv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/4iIiP86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /0RAPf/j6Ov/6u/z/+rv8v/q7/L/6u/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/q7/L/6e/y
+ /3d1c/86NjL/OjYx/zo2Mf86NjH/NDAs/+3y9f/q7/L/6u/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/Yl9c
+ /zo2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/VVNQ/93h5P/q7/L/6u/z
+ /+rv8v/q7/P/6u/y/+rv8v/q7/L/6u/y/8/R1P84NC//OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjL/Yl9c/+7v8f/v8PL/7/Dx/+/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7+/x/+/w8v/v8PL/7+/x/+/w8f/v7/H/7+/x/+/w8f/u7/H/7u/x/2FeW/86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv9lYl//6e7y/+rv8v/q7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/c4OP/Pzs3
+ /zo2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/5ydnf/q7/L/6e/y/+rv8v/q7/L/6e/y
+ /+rv8v/p7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/p7/L/dXRy/zo1Mf86NjH/OjYx/zo2Mf80MCz/7fL1
+ /+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nu8v9iYF3/OzYy/zo2Mf86NjH/OjUx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjL/ODQw/3Vzcf/e4uX/6u/y/+nv8v/q7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/p7/L/hIOC
+ /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf9iX1v/7u/x/+/w8f/u8PH/7/Dy/+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy
+ /+/w8f/v8PH/7/Dx/+/v8f/u7/H/YV5b/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OzYx/zo2Mf86NjL/OjYx/zo1Mf86NjH/OzYx/2ViYP/o7vL/6u/y/+nv8v/q7/L/6e/y
+ /+rv8v/p7/L/6e/y/+rv8v/p7/L/6u/y/4+Pjv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/TUlG/+js8P/p7/L/6u/y/+rv8v/p7/L/6u/y/+nv8v/p7/L/6e/y/+rv8v/p7/L/6e/y
+ /+nv8v93dXP/OjUx/zo2Mf86NTH/OjYx/zQwLP/t8vX/6e/y/+nv8v/q7/L/6e/y/+rv8v/p7/L/6e7y
+ /2BdW/84MzD/ODQw/zg0MP84NDH/OTQw/zYyLf86NzP/WVdU/4iHhv/Hysz/6u/z/+rv8v/q7/L/6u/y
+ /+rv8v/q7/L/6u/y/+rv8v/p7/L/6e/y/9LW2P8+Ojf/OjYx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2JgXP/u7/H/7u/x/+/w8f/v8PL/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PL/7/Dy/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+7v8f9hXlv/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/ZWJf/+ju8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6u/z/+rv8//h5ej/Qz88
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/qKmp/+rv8v/q7/P/6u/y
+ /+rv8v/q7/P/6e/y/+nv8v/q7/L/6u/y/+nv8v/q7/L/6u/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs
+ /+3y9f/q7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/2N3f/9HV1//R1Nf/0NTW/9DT1v/R1Nf/3+Pm
+ /+zw8//p7/L/6e/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/p7vH/YmBe
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OzYx
+ /zo2Mf86NjH/Yl9c/+7v8P/v8PL/7/Dy/+/w8v/v8PL/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7u/x/2FeW/86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mv9mYmD/6e7x/+rv8v/q7/L/6e/y
+ /+rv8v/p7/L/6u/y/+nv8v/q7/L/6u/y/5WWlf86NjL/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf9TUE7/6u/z/+rv8//q7/P/6u/z/+rv8v/p7/L/6u/y/+rv8v/q7/P/6e/y
+ /+rv8v/p7/L/dnVy/zo2Mf86NjH/OjYx/zo2Mv80MCz/7fL1/+rv8v/p7/L/6u/z/+nv8v/p7/L/6u/y
+ /+nv8v/q7/L/6u/z/+rv8//q7/L/6e/y/+nv8v/q7/P/6e/y/+rv8v/p7/L/6e/y/+rv8//p7/L/6u/y
+ /+rv8v/q7/P/6u/y/+rv8//q7/L/6u/y/4uLiv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zs2Mf9iX1z/7u/x/+/w8v/v8PL/7/Dy
+ /+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/u7/H/YV5b
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/2ViYP/o7vH/6u/y/+nv8v/q7/L/6e/y/+rv8v/q7/L/6e/y/+nv8v/l6e3/R0NA
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYy/zo2Mf+xs7T/6u/z
+ /+rv8//q7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/P/6u/y/+rv8v92dXL/OjYx/zo1Mf86NjH/OjYy
+ /zQwLf/t8fT/6u/z/+rv8v/q7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/y/+nv8v/p7/L/6u/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v+YmZn/OTQw
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo1Mf86NTH/OjUx
+ /zo2Mf86NjL/OjYx/2NgXP/t7vD/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v8PL/7/Dy
+ /+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx/+7v8f9hXlv/OzYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OzYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zs2Mf86NjH/ZWJg/+ju8f/p7/L/6u/y
+ /+rv8v/p7/L/6u/y/+rv8v/p7/L/6e/z/52dnv86NjL/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/1xZV//q7/P/6u/z/+rv8//p7/L/6e/y/+rv8v/p7/L/6u/y
+ /+rv8v/p7/L/6u/y/3Z1cv86NjH/OjYx/zo2Mf86NjH/NDAs/+3x9P/q7/P/6e/y/+nv8v/q7/L/6e/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/q7/L/6u/y/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/y
+ /+nv8v/q7/L/6u/y/+rv8v/n6+//g4KB/zk1MP86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mv86NjH/OzYy
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf87NjL/Yl9c/+7v8f/v8PL/7/Dx
+ /+/w8v/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7u/x
+ /2JeXP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo1Mf86NTH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf9lYmD/6e7x/+rv8v/q7/L/6u/y/+rv8v/q7/L/6u/z/+rv8v/o7fD/TUpH
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /7u9v//q7/P/6u/z/+rv8//p7/L/6u/y/+rv8v/p7/L/6u/y/+rv8//q7/L/dnVz/zo2Mf86NjH/OjYx
+ /zo2Mf81MCz/7fL1/+rv8v/p7/L/6u/y/+nv8v/q7/L/6e/y/+nv8v/p7/L/6u/y/+rv8v/q7/L/6e/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nv8v/q7/L/xMjK/1pXVf86NjL/OzYy
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OzYy/zs2Mv9iX1z/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dy
+ /+/w8v/v8PH/7/Dy/+/w8f/v8PL/7/Dy/+/w8f/u7/H/Yl5b/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/2NgXf/p7vH/6u/z
+ /+rv8//p7/L/6u/y/+rv8//q7/L/6u/z/6ipqf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/aWdl/+rv8//q7/P/6u/y/+nv8v/q7/P/6u/y
+ /+nv8v/q7/P/6u/y/+rv8/92dHL/OjYx/zo2Mf86NjH/OjYx/zQwLf/t8fT/6e/y/+rv8v/q7/L/6u/y
+ /+nv8v/q7/L/6e/y/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6u/z/+rv8//q7/P/6u/y
+ /+rv8//r8PP/wcPF/3Nxb/85NTD/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dy
+ /+/w8f/v8PH/7/Dy/+/w8f/v7/H/7+/x/+/w8f/v8PL/7/Dy/+/w8f/v8PL/7/Dx/+/w8v/v8PL/7/Dx
+ /+7v8f9iXlz/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjH/OjYx/zo2Mf86NjH/PDcz/4eHh/+lpqf/pKWl/6OkpP+oqan/rK6w/7K0tf+io6T/TUpG
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf85NDD/ra+v/+fs7//t8fT/7PH0/+zx9P/t8fT/7PH0/+zx9P/s8fT/4+fp/11bWf86NjH/OjYx
+ /zo1Mf86NjH/NzMv/9jc3//p7vL/6e/y/+nv8v/p7/L/6u/y/+rv8v/p7/L/6u/z/+rv8//q7/L/6u/z
+ /+nv8v/p7/P/6e/y/+nu8v/q8PP/7PDz/9DU1v+ws7T/h4eG/1BNSv85NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/YV5b/+7v8P/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OTUx/zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/NTEt/zMvK/8zLyv/My8r
+ /zUxLf82MzD/OTUx/zo3NP82Mi7/OzYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/SERB/2JgXf9hX1z/Yl9c
+ /2JfXf9kYl//ZmRh/2VkYv9oZmT/a2pp/21sav9vbmz/cG9t/2tqaP9jYV7/YF5b/05LSP86NjP/OTUw
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjUx/zo2Mv87NjH/OjYx/zo1Mf9iX1z/7u/w
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PL/7/Dx
+ /+/w8f/u7/D/Yl9c/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYy
+ /zo2Mf86NjH/OzYx/zUxMf81MTH/NTEx/zUxMf87NjL/OjYy/zo2Mf86NjH/OjYx/zczMf85MzL/OTUy
+ /zYwMf83MzH/OjYy/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo1Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mv86NjH/OjYy/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/2FeW//u7/D/7+/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8v/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8v/v8PL/7/Dy/+7v8P9hXlv/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf91ZjP/6ro2/+28Nv/puDb/57Y3
+ /25fNP86NjL/OjYx/zo1Mf86NjL/qIs0//K+Nv/yvjX/8b81/9uwNf9SSjL/OjYy/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx
+ /zo1Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/Yl5b
+ /+7v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7u/x/2JeW/86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OzYx
+ /zo2Mf87NjL/OjYy/4NuNP/xuTX/8rk2//G5Nv/xuTb/ooQ1/zo2Mv86NjH/OjUx/zo2Mv+fhDX/8bk2
+ //G5Nv/xuTb/8bk2/4FtNP86NjL/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9iX1z/7u/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dy/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7/H/YV5b/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/aFo0//G4Nf/yuTb/8bk2
+ //G5Nf+7lTX/Ozcy/zo2Mf86NTH/OjYy/3tqM//xuTb/8bk2//G4Nv/xuTb/n4M0/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zs2Mv86NTH/OjYx/zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYy/zs2Mf86NjH/OzYy
+ /2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx
+ /+/w8f/v7/H/7+/x/+7v8f9hXlv/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv9HQTP/8bw1//G5Nf/xuTb/8bk2/+CxN/83MzL/OjYy/zo2Mf86NjL/WFE0
+ //G4Nv/xuTb/8bk2//G5Nv++mTX/OzYx/zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjUx
+ /zo1Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/w/2JeXP86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjL/OjYy/zYyMv/mtjb/8bk1
+ //K5Nv/xuTb/8bs1/0ZBMf86NjL/OjYy/zo2Mv88NzL/8sA1//G5Nv/xuTb/8bk2/+a3Nv82MjL/OjYy
+ /zo1Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx
+ /zo2Mf86NTH/OjUx/zo1Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy/zo1Mf86NTH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf87NjL/OjUx
+ /zo2Mf9iX1z/7u/x/+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/u7/H/Yl5b/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv9PRzL/h281/453Nv+QeDT/kXk1/96vNf/xuTb/8bk2//G5Nv/xuDb/spE1/5l+NP+TeTT/kHg0
+ /5B3NP/suDb/8bk2//G5Nv/xuTf/8bk3/6mKNf+dgTT/nH80/5t/NP9RSDH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/2JfXP/u7/D/7/Dx/+/w8f/v8PL/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+7v8f9hXlr/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/454NP/xuTX/8rk2//K5Nv/yuTb/8bk2
+ //G5Nv/xuTb/8rk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2
+ //G5Nf/xuTb/8bg1/7yXNf87NjH/OjYx/zo1Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYy/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYx/zs2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/Yl9b/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7+/x/+/w8f/v8PL/7/Dy
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7u/w/2JeW/86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf86NTH/dmUy//G5Nf/xuTb/8bk2//K5Nv/xuTb/8bk2//G5Nv/yuTb/8bk2//G5Nv/xuTf/8bk2
+ //G5N//xuTb/8bk2//K5N//xuTf/8bk2//G5N//xuDb/8bk2//G5Nv/xuTb/5LU2/zUxMv86NjL/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjUx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf87NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OzYy/zo2Mf9iX1v/7u/w/+/w8f/v8PH/7/Dx
+ /+/w8v/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/u7/H/Yl5b
+ /zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf9ZUTP/8Lg2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk3//G5Nv/xuTb/8bk2
+ //G5Nv/yuTf/8bk2//G5Nv/yvTb/RD4y/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf87NjH/OjYy/2JeW//u7/D/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+7v8f9iXlv/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OzYy/z03Mf/rujX/8bk2//G5Nv/xuTb/8bg3//G5Nv/xuTb/8bk3//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//K5Nv/xuTb/8bk2//G5Nv/yuTb/8rk2//G4Nv/xuTb/8bk1/++4Nf9QSDL/OzYy
+ /zo2Mv86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OzYy/zs2Mv86NjH/Yl9c/+7v8P/v8PH/7/Dx
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx//Dw8v/v8PH/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7u/w
+ /2FeW/86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy/1xRMf95ZzL/eGYz
+ /3RjMv9zYTL/3rA3//G5Nv/xuTb/8bk2//C4Nv+SezT/emg0/3lnM/95ZzP/dmQ0//G9Nv/xuTb/8bk2
+ //G5Nv/yvDf/eGY0/3poM/94ZjL/X1Q0/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYy
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zo2Mv86NjL/OjYy/zo2Mf9iX1z/7u7w/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/w8f/v7/H/7/Dy
+ /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8v/u7/H/Yl5b/zo2Mf86NjH/OjYy/zo1Mf86NjH/OjYx
+ /zs2Mf86NjL/OjYx/zs2Mv86NjL/OjYx/zo2Mv86NjL/OjYy/zo2Mv+xkDT/8bk2//G5Nv/xuTb/8bk2
+ /3FhNP86NjL/OjYy/zo2Mv86NTL/0KY0//G5Nv/xuTb/8bk2//C4Nv9WTzL/OjYy/zo2Mv86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjL/OzYx/zs2Mv86NjH/OzYy/zo2Mv87NjL/OzYy/2JfXP/u7/D/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+7v8f9hXlv/OzYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYy/zo2Mf87NjL/OjYx/zs2Mv86NjH/OjYy
+ /zs2Mv86NjL/OjYy/4x0NP/xuTb/8bk2//G5Nv/xuTb/l300/zo2Mv86NjL/OjYy/zo2Mv+piTX/8bk1
+ //G5Nv/xuTb/8bg2/31pNP86NjL/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYy
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mv86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zs2Mv87NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYy
+ /zo2Mf86NjL/OjYy/zo2Mf86NjL/Yl9c/+7u8P/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/2JfW/87NjH/OjYx/zo2Mf86NTH/OzYy
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/b2Ay//G4Nv/xuTb/8bg2
+ //G5Nv+8mDX/PDYx/zo2Mv86NjL/OjYy/4RwNP/xuTb/8bk2//G5Nv/xuTb/oIQ1/zo2Mv86NjL/OjYy
+ /zo1Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv9iX1z/7u/x
+ /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx
+ /+/v8f/u7/D/YV5b/zo2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zo2Mv86NjL/OjYy/zo2Mf86NjH/OjUx
+ /1BIMf9rXDL/Z1ky/2haMv+BbjX/8Lg2//G5Nv/xuTb/8bk2/+m3N/9iVTH/ZFgy/2RYMv9oWjT/k3s1
+ //G5Nv/xuTb/8bk2//G5Nv/NpTb/ZFky/2NXMv9oWjP/X1Uy/zk0Mv86NjH/OzYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zs2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+7v8P9jX1z/OzYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OzYy/zo2Mf87NjL/OjYx/zo2Mf83MjH/3K80//G5Nv/xuTX/8bk1//G4Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G5N//xuDX/8bg1//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuDb/8bk2
+ //G4Nf/xuDb/aFwz/zo2Mv86NjL/OzYy/zs2Mf86NTH/OzYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjH/Yl9b
+ /+7v8P/v8PH/7+/x/+/w8v/v7/H/7/Dy/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/7u/x/2FeW/86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OzYx/zo2Mf86NTH/OjYx
+ /zo2Mv/PpTT/8bk1//G5Nv/xuTX/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G4Nv/xuTb/8bk2//G5Nv/xuTb/8bk1//G5Nf+XfTT/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf9iXlv/7u/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/8PDy/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/u7/D/YV5c/zo2Mf86NTH/OjUx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6+OM//xuTb/8bk2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bg2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk1/7iUNP87NjH/OjYy/zo2Mf86NjL/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OzYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/w8PL/7/Dx/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f9iXlz/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYy/zs2Mv86NjH/OzYy
+ /zo2Mf86NjL/i3Q0//G5Nf/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nf/xuTX/1Ko1/zk0Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo1Mf86NjL/OjYx
+ /zo2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zs2Mv87NjL/OzYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mv86NjL/OjYy
+ /zo2Mf87NjL/OjYx/zo2Mf87NjL/OjYx/zs2Mv86NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8v/v8PH/7+/x/+/w8f/v8PL/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/2FdW/87NjL/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9IQjH/noM1/6aINP+mhzT/p4c0
+ /7WTNf/xuTf/8bk2//G5Nv/xuTb/7Lg2/6SGNP+piTX/qIk0/6eJNP/BmzX/8bk2//G5Nv/xuTb/8bk2
+ /+CvNf+khjT/poc0/6aGNf9yYjT/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zs2Mv86NjL/OjYy/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zs2Mv86NjH/OjYx/zs2Mv86NjL/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx/zo2Mv87NjH/OjYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf9iX1z/7u/w/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dy/+/w8f/u7/D/Yl5c/zo2Mv86NjH/OjYy/zs2Mf87NjH/OjYx/zo2Mv86NjH/OzYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mv86NjL/Pzkz//G+N//xuTb/8bk2//G4Nv/vvjf/NjEz
+ /zo2Mv86NjL/OjYy/15VM//wuDb/8bk2//G5Nv/xuTb/1ag2/zk0Mf86NjL/OjYy/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYy
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjL/OjYx/zo2Mv87NjL/OjYy
+ /zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/2JfXP/u7/D/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+7v8P9hXlv/OzYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OjYy
+ /zo2Mv86NTH/z6Q0//G5Nv/xuTb/8bk2//C5Nv9XTzL/OjYy/zo2Mv86NjL/PTgy//K+Nf/xuDb/8bk2
+ //G5Nv/wvTb/OjQx/zo2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OzYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYy/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy
+ /zs2Mv87NjL/Yl9c/+7v8P/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PL/7+/x/2NgXv86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mv86NjL/OjYx/zs2Mf86NjH/OzYy/zo2Mf86NTH/OjYx/zo2Mv+oiDX/8bk2//G5Nv/xuTb/8bk2
+ /35qM/86NjL/OjYy/zo2Mf85NTH/1qo1//G5Nv/xuTb/8bk2//C4Nf9ZUDP/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mv87NjL/OjYy/zo2Mv86NjL/OjUx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx/zo2Mf86NjL/OzYy/zs2Mv9pZmT/7u/w/+/v8f/v8PH/7/Dy
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/c3Bu
+ /zo2Mv86NjL/OjYx/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/4NuM//xujX/8bk2//G5Nv/xuTb/p4c0/zo2Mv87NjL/OjYy/zs3Mv+2lDX/8bk2
+ //G5Nv/xuTb/8bk2/3toM/86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjUx/zo2Mf86NTH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mv87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYx/zo2Mv87NjH/OjYy
+ /zo2Mv86NjL/OzYy/3x6eP/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8v/v8PH/7/Dx/+/w8f+Jh4X/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYy/zo2Mf87NjL/OjYx/zo2Mv86NjL/UUoy/+S1NP/xvTb/8b41
+ //LBNv+ihTX/OzYy/zo2Mv86NjH/OjYy/4JtM//xvjb/8r42//G/Nv/xvTX/gGsy/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYy
+ /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mv87NzP/mZeX/+/w8f/v7/H/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8v/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /7Kxsf87NjL/OzYy/zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYy/zo2Mv87NjL/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf87NjH/OzYx/zs2Mv86NjL/NjEx/zQvMf8zLzD/My8w/zk0Mf86NjH/OjYx/zo2Mv87NjH/OjUx
+ /zYxM/80MDH/NTAx/zs1Mv85NTH/OjYx/zs2Mv86NjH/OjYx/zo1Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv87NjH/OzYx/zo2Mf87NjH/OzYy/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYx/zo2Mf86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYx/zo2Mv86NjL/OzYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OjYx
+ /zs2Mv86NjH/OzYy/zo2Mf87NjH/OjYx/zo2Mv87NjL/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv87NjL/Ozcy/zs3Mv/Gxcb/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7+/x/+/w8f/v8PH/6Ojp/0A8OP87NjH/OjYy/zo2Mf86NjL/OjYy
+ /zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mv86NjL/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjUx/zs2Mf86NjH/OjYx
+ /zs2Mv86NjH/OjYx/zs2Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjL/OzYy
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYy/zo2Mf86NjH/OzYy/zs2Mf87NjL/OjYx/zs2Mv87NjL/OzYy
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy/zs2Mv87NjL/TEhF/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v7/H/h4WE/zo2Mv86NjH/OjYy/zs2Mv86NjL/OjYx/zo2Mf86NjL/OzYy/zs2Mf86NjL/OjYx
+ /zs2Mv86NjH/OjYx/zs2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zs2Mv87NjL/OzYy/zs2Mv86NjH/OzYy
+ /zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zs2Mv87NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo1Mf87NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjL/OjYx
+ /zs2Mv87NjL/OjYx/zs2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv87NjL/OzYy
+ /zo2Mf87NjL/OzYy/zs2Mv+Yl5b/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/f3+D/REA8/zo2Mv87NjL/OzYy
+ /zo2Mv86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mv86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zs2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/zo1Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mf86NjH/OjYy/zo2Mf87NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mv87NzL/TEdE/+fn6P/v8PH/7+/x
+ /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/v8f+uraz/OTQw/zs2Mv86NjH/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYy
+ /zs2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OzYx/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYy
+ /zs2Mf87NjL/OzYy/zo2Mf87NjL/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy
+ /zo2Mf86NjH/OjUx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OzYy/zs2Mv86NjH/OzYx/zs2Mf87NjL/OzYx
+ /zo2Mv86NjH/OjYx/zs2Mf86NjH/OzYy/zo1Mf86NjH/OjYx/zs2Mv86NTH/OzYy/zo2Mf86NTH/OjYx
+ /zo2Mf87NjL/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf87NjH/OzYy
+ /zs2Mv86NjH/OjYx/zo2Mf87NjL/OjYy/zo2Mf86NjH/OjYx/zs2Mv86NjL/OjYy/zo2Mv86NjH/OjYx
+ /zs2Mv86NjL/OzYy/zs2Mv+7urr/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PL/7+/x/+/v8f+Mi4r/OTUx
+ /zs2Mv86NjH/OzYy/zo2Mf87NjL/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf86NjL/OzYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mf86NjL/OzYy
+ /zo2Mf86NjH/OzYx/zo2Mf86NjH/OzYy/zs2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf87NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYy/zo2Mv86NjH/OzYy
+ /zo2Mf86NjH/OzYy/zo2Mv86NjL/OjYy/zo2Mv87NjH/OjYx/zs2Mv85NTD/nJqa/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f+Yl5f/PDcz/zs2Mv86NjL/OzYy/zs2Mf86NjH/OzYy
+ /zs2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjL/OzYx/zo2Mv87NjL/OjYy/zo2Mf87NjH/OzYy
+ /zo2Mf86NjL/OjYy/zo2Mf86NjL/OzYy/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mf86NjL/OjYy/zs2Mv86NjH/OjYx/zs2Mv86NjH/OzYx/zs2Mf87NjL/OjYy
+ /zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv86NTH/OjYx/zs2Mv87NjL/OjYx/zs2Mv86NjH/OjYx
+ /zo1Mf86NjL/OjYy/zs2Mv87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYy/zo2Mv86NjL/OzYy/zs2Mv86NjL/OzYx/zs2Mv87NjL/OjYy/zs2Mf87NjL/OzYy
+ /zs2Mv87NjL/OzYy/5uamP/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/BwcH/Uk9L/zs2Mv86NjH/OzYy/zo2Mf87NjL/OzYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf87NjL/OzYy
+ /zo2Mv87NjL/OzYx/zo2Mf86NjL/OzYy/zs2Mv87NjL/Ozcz/1FNSv/Av7//7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x/+7v8f/s7O7/p6am/11bWP84NDD/OjYx
+ /zo2Mf87NzL/OjYy/zs2Mv87NjL/OjYy/zs2Mv87NjL/OjYy/zs2Mv87NjL/OzYy/zs2Mv87NjL/OzYy
+ /zs2Mv87NjL/OzYy/zo2Mv87NjL/OzYy/zs2Mv86NjL/OzYy/zs2Mv87NjL/OjYy/zo2Mf86NjH/OzYy
+ /zo2Mv86NjL/OjYy/zo2Mf86NjH/OjYx/zo2Mv87NjL/OjYx/zs2Mv86NjH/OzYy/zo2Mf86NjL/OjYy
+ /zs2Mv87NjL/OzYy/zo2Mv87NjL/OjYy/zo2Mv86NjL/OjYx/zs2Mv87NjL/OzYy/zs2Mv87NjH/OjYy
+ /zo2Mv87NjL/OzYy/zo2Mv86NjL/OjYx/zs2Mf86NjH/OjYx/zs2Mv87NjL/OjYy/zs2Mv86NjL/OjYy
+ /zo2Mv87NjL/OjYy/zs2Mv87NjL/OzYy/zs2Mv87NjL/OjYy/zs3Mv87NjL/OzYy/zs2Mv87NjL/OjUx
+ /1xZVv+mpqX/7Ozt/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v7/H/7+/x/+/w8f/v7/H/7u/x/9vb3P+vrq3/lZOR/5GQjv+SkJD/kpCP/5KQj/+SkI//kpCQ
+ /5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+RkI7/kZCP/5GQjv+RkI//kY+P
+ /5KQj/+SkI//kpCP/5KQj/+SkI//kZCP/5KQj/+SkI//kpCP/5GQj/+SkI//kpCP/5GQj/+SkI//kpCP
+ /5KQj/+SkI//kpCP/5KQj/+SkI//kpCP/5KQj/+SkI//kY+O/5GQj/+SkI//kpCP/5KQj/+SkI//kpCP
+ /5KQjv+SkI//kpCP/5ORkP+SkI//kpCO/5KQj/+SkI//kpCP/5KRj/+SkY//kpCP/5KQj/+RkI7/kpCP
+ /5KQj/+Rj47/kpCP/5KRj/+RkI//kpCQ/5GQj/+Rj4//kpCO/5GQj/+SkI//kpCP/5KQj/+RkI//kpCP
+ /5KQj/+SkY//kpCP/5KQj/+SkI//k5CQ/6qpqf/V1dX/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/u7/H/7u/x/+/v8f/u7/H/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/D/7u/w/+7v8P/u7vD/7u/w
+ /+7v8P/u7/D/7u/w/+7u8P/u7/D/7u/w/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7u8P/u7/D/7u/w
+ /+7v8P/u7/D/7u/w/+7u8P/u7vD/7u/w/+7u8P/u7/D/7u7w/+7v8P/u7/D/7u7w/+7v8P/u7/D/7u/w
+ /+7u8P/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/H/7u7w
+ /+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/H/7u/w/+7v8P/u7/H/7u7w
+ /+7v8P/u7/H/7u/w/+7v8P/u7/D/7u/w/+7v8f/u7/D/7u7w/+7v8f/u7/H/7u/w/+7v8P/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/u7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/u7/H/7u/w/+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x
+ /+/v8f/u7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+7v8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/u7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx
+ /+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/u7/H/7+/x/+/v8f/v8PH/7u/x/+/v8f/v7/H/7/Dx
+ /+/v8f/v7/H/7/Dy/+/w8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/w8f/v8PH/7+/x
+ /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7u/x/+/w8f/v7/H/7+/x/+7v8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8P/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/w8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x
+ /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx//Dw8v/w8fL/7/Dy/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAADv8PH/7/Dx
+ /+/w8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7u/x/+7v8f/u7/H/7+/x/+7v8f/u7/H/7+/x
+ /+7v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7u/x
+ /+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+7v8f/u7/H/7+/x
+ /+/v8f/u7/H/7+/x/+7v8f/u7/H/7u/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+7v8f/u7/D/7u/x/+7v8f/u7/H/7u/x
+ /+7v8P/u7/D/7u/x/+7v8P/u7/D/7u/w/+7v8f/u7/H/7u/w/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/x
+ /+7v8f/u7/D/7u/x/+7v8f/u7/H/7u/w/+7v8P/u7/D/7u/w/+7v8P/u7/H/7u/x/+7v8P/u7/D/7u/x
+ /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/u7vD/tra2/4F/ff9oZWL/Y2Bd
+ /2NgXf9iX13/Y2Bd/2NgXf9jYF3/Y19d/2NfXf9iX13/Y2Bd/2NgXf9jYF3/Y2Bd/2NfXf9jX13/Y19d
+ /2JfXf9jX13/Y19d/2NgXf9jYF3/Y19d/2NgXf9jYF3/Y2Bd/2NgXf9iX13/Y2Bd/2NgXf9jYF3/Y2Bd
+ /2NgXf9jYF3/Y2Bd/2NgXf9jYF3/Y2Bd/2NgXf9jYF3/Y2Bd/2NgXf9jYF3/ZmNh/399e/+0s7P/7O3v
+ /+/w8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/W1tf/X1tY
+ /zo2Mv86NjL/OjYx/zo2Mf87NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OzYy
+ /zs2Mv87NjL/OzYy/1tXVP/S0tL/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/b3N3/TEhE/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OzYy/zo2Mv86NjH/SERA/9jY2f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/dHJw/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9yb23/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/29vc/zs3Mv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjL/Ozcz/97e3//v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/7Szs/86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy/yiFtf8njcD/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy
+ /zo2Mf87NjH/OjYx/zo2Mf87NjH/OzYy/zs2Mv+3t7b/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f+op6b/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zg/QP8kls7/KIW0/zk3NP8pga7/IKfy
+ /zVKUf86NjH/OjYx/zFec/8hpur/Ml1y/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zg/QP8llc7/IKfy
+ /yOc3P84PTz/L2V//yCn8v8uZ4P/OjYy/zo2Mf8sdJf/IKfy/yGn7/8xXnP/OjYy/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjL/OjYx
+ /6inpv/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6inpv86NTH/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjYx/zo1Mf86NjH/OjUx
+ /zg/Qf8klc//IKfy/yOb2/82Rkv/OjUx/zZIT/8gqPL/KIS0/zo2Mv86NjH/OjYz/yp+p/8gp/L/IKfv
+ /zFec/86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv+op6b/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zhAQv8lltH/IKfy/yOb2/83Rkv/OjYx/zo2Mf86NTH/Ip7f/yKh5f86NjP/OjYx
+ /zo2Mf86NjL/Knuh/yCn8v8gp+//MV50/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjUx/zo2Mf86NjH/OjUx/zo2Mf8nh7j/IKfy/yCl7P82Rkz/OjYy/zo2Mf86NjH/OjYx
+ /ymCr/8gp/L/NU1X/zo2Mf86NjH/OjYy/zo2Mv8ohrX/IKjy/yCn8P82Rkv/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/6inpv/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6impv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo1Mf86NjH/MVhp/yCm7f8gp/L/KICs
+ /zo3NP86NjH/OjYx/zo1Mf8wZX7/IKfy/y5qiP86NjH/OjYx/zo2Mf8zV2f/IaXs/yCo8v8pgKz/OjYz
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx
+ /zo2Mv8yWWr/IKbt/yCn8v8pgKv/OjYz/zo1Mf86NjH/NkdO/yCo8v8nh7n/OjYy/zo2Mf8yWGn/IaXs
+ /yCn8v8pgaz/Ojc0/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zJZav8hpu3/IKfy/ymAq/86NjL/OjYx/zo1Mf8jnd3/IaTo
+ /zk3NP8yWGj/IaXt/yCn8v8pgKv/Ojcz/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYy/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8v/v8PH/7/Dy/6impv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/Mldo/yGl7P8in+H/OTw7
+ /zo2Mf86NjL/KX+r/yCn8v80UFz/LHaa/yCo8v8qgav/Ojcz/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx
+ /+/w8v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjUx
+ /zo1Mf81TFT/NkVK/zo2Mf86NTH/OjUx/zFdcf8gqvH/L2R9/zo2Mv8zVWL/Ojcz/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/qKam/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjUx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjUx/zo2Mf86NjL/OjUy/zo1Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /6inpv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mv86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/enl3
+ /7y/wP+9v8H/k5OT/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9GQj7/t7q7
+ /72/wf+7vb//hYSD/zo2Mf86NTH/cXBv/8bJy//Iy83/x8vN/8fLzP/Hy83/x8rM/8LGyP+5vL3/pqeo
+ /39/fv9KRkP/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/6eoqf/q7/L/6u/y/8rN0P86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/WFVS/+rv8v/q7/L/6u/y/7Cysv86NjH/OjYx/5CQkP/q7/L/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v/q7/L/6e/y/+nv8v/p7/L/5uvu/6Wmpv9HQ0D/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/6empv86NTH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKj/6u/y/+rv8v/KztD/OjYx/zo2Mf86NjH/RUE9
+ /6qrrP+xs7T/cW9u/zo2Mf86NjH/OjYx/1lWVP/p7/L/6u/y/+nv8v+wsrP/OjYx/zo2Mf+QkJD/6e/y
+ /+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/q7/L/6u/y/+nv8v/p7/L/1tvd/1dUUv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f+npqb/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6io/+rv8v/p7/L/y87R
+ /zo2Mf86NjH/OjYy/46Pjv/q7/L/6e/y/9ba3P8+OjX/OjYx/zo2Mf9ZVlP/6e/y/+rv8v/p7/L/sLKy
+ /zo2Mf86NjH/kJCQ/+nv8v/p7/L/6e/y/9DU1v+lp6f/paam/6mqq/+9wMH/4+jr/+rv8//q7/L/6u/y
+ /+rv8v/W2tz/RkE+/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8v/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/p6am/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /6eoqf/q7/L/6u/y/8vP0f86NjL/OjYx/0E9Of/b4OP/6e/y/+rv8v/q7/L/fHt6/zo2Mf86NjH/WVZT
+ /+nv8v/p7/L/6e/y/7Cysv86NjH/OjYx/5CQkP/p7/L/6e/y/+nv8v+lp6f/OjYx/zo2Mv86NjL/OjYx
+ /0RAPP+jpKT/6u/y/+rv8v/q7/L/6u/y/52env86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6empv86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+nqKj/6u/y/+nv8v/Lz9H/OjYy/zo2Mf+GhYT/6u/y/+rv8v/q7/L/6u/y
+ /83R0/87NzL/OjYx/1lWU//p7/L/6u/y/+nv8v+wsrL/OjUx/zo2Mf+QkJD/6e/y/+rv8v/q7/L/paan
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/66wsf/q7/L/6u/y/+rv8v/i5+r/Qj46/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+7v8f+npqb/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6ip/+rv8v/p7/L/y87R/zo2Mv89ODX/1Njb
+ /+nv8v/q7/L/6u/y/+rv8v/p7/L/cnBv/zo2Mf9ZVlP/6e/y/+rv8v/p7/L/sLKy/zo2Mf86NjH/kJCQ
+ /+rv8v/q7/L/6u/y/6anp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9UUU7/6u/y/+rv8v/q7/L/6u/y
+ /25sav86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/p6am/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqf/q7/L/6u/y
+ /8vP0f86NjL/eXd2/+rv8v/p7/L/6e/y/+Tp7f/p7/L/6u/y/8THyf86NjH/WVZU/+rv8v/p7/L/6u/y
+ /7Cysv86NjH/OjYx/5CQkP/q7/L/6u/y/+nv8v+mp6f/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /9XZ3P/q7/L/6u/y/+rv8v+MjIv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v7/H/7u/x/6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+nqKj/6u/y/+rv8v/Lz9H/Ozcy/8vP0f/q7/L/6u/y/7/Bw/+QkZD/6e/y/+nv8v/q7/L/aGZk
+ /1lWVP/q7/L/6u/y/+rv8v+wsrL/OjYx/zo2Mf+QkJD/6u/y/+nv8v/q7/L/paen/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf/Dxsj/6u/y/+rv8v/p7/L/m5ub/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7/Dx/+/v8f+opqb/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/p6io/+nv8v/p7/L/y8/R/3Fvbv/q7/L/6u/y/+rv8v9qaGb/RkI/
+ /+Ln6v/q7/L/6u/y/7y/wP9ZVlP/6e/y/+rv8v/q7/L/sLKy/zo2Mf86NjH/kJCQ/+rv8v/p7/L/6e/y
+ /6anp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/xsnL/+rv8v/q7/L/6u/y/5ubm/86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v7/H/qKem
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqf/p7/L/6e/y/8vP0f/Ex8n/6u/y
+ /+rv8v/GyMr/OjYx/zo2Mv+dnZ7/6u/y/+rv8v/q7/L/goGA/+nv8v/q7/L/6u/y/7Cysv86NjH/OjYx
+ /5CQkP/p7/L/6e/y/+rv8v+lp6f/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/Ozcz/9/k5v/q7/L/6u/y
+ /+rv8v+NjYz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PL/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/7u/x/6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKn/6e/y
+ /+nv8v/o7fD/6u/y/+rv8v/q7/P/cnFv/zo2Mf86NjH/TktI/+br7//q7/L/6u/y/9fc3v/q7/L/6u/y
+ /+rv8v+wsrL/OjYx/zo2Mf+RkZD/6u/y/+rv8v/q7/L/paen/zs2Mf86NjH/OzYy/zo2Mf86NjH/OjYx
+ /2lnZf/q7/L/6u/y/+rv8v/q7/L/bWtp/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv+op6b/7+/x
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/p6io/+rv8v/p7/L/6u/y/+rv8v/q7/L/zdHT/zs3M/86NjH/OjYx/zo2Mf+oqqv/6u/y
+ /+rv8v/q7/L/6u/y/+nv8v/p7/L/sLKy/zo2Mf86NjH/kJGQ/+rv8v/q7/L/6u/y/6anp/86NjH/OjYx
+ /zo2Mf86NjH/OjYx/0E9Of/Iy83/6u/y/+rv8v/q7/L/4+jr/0E9Of86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/qKem/+/w8v/v8PH/7/Dx/+/w8f/v8PL/7/Dx/+/v8f/v8PH/qKem/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6eoqP/q7/L/6e/y/+rv8v/p7/L/6u/y/3l4dv86NjH/OjYx
+ /zo2Mf86NjH/V1RS/+nu8v/q7/L/6u/y/+nv8v/q7/L/6e/y/7Cysv86NjH/OjYx/5GRkP/p7/L/6e/y
+ /+rv8v+lpqf/OTUx/zk1Mf85NDD/Qj46/3Bvbf/Jzc//6u/y/+rv8v/q7/L/6u/y/5+hof86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dy/+/w8v/v8PH/7/Dy/+/w8v/v8PH/7/Dx
+ /6impv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+nqKn/6u/y/+rv8v/q7/L/6u/y
+ /9LW2f88ODT/OjYx/zo2Mf86NjH/OjYx/zo2Mv+0trf/6u/z/+rv8v/p7/L/6u/y/+rv8v+wsrL/OjYx
+ /zo2Mf+RkZH/6e/y/+nv8v/q7/L/5eru/93i5f/d4eT/4eXo/+rv8v/p7/L/6u/y/+rv8v/q7/L/6u/y
+ /9LW2P9EQT3/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dy/+/w8v/v8PL/7/Dx
+ /+/w8v/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/p6ip
+ /+rv8v/p7/L/6u/y/+nv8v+BgH//OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/YV5b/+rv8//q7/L/6u/y
+ /+nv8v/q7/L/sLKy/zo2Mf86NjH/kJGQ/+rv8v/p7/L/6e/y/+nv8v/p7/L/6e/y/+rv8v/p7/L/6e/y
+ /+rv8v/p7/L/6u/y/8/T1f9RTkv/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/qKem
+ /+/w8f/v8PH/7/Dy/+/w8f/v8PL/7/Dx/+/w8f/v8PL/qKem/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/6aoqP/q7/L/6u/y/+rv8//Z3eD/Pzs3/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf++wcL/6u/z/+nv8v/q7/L/6u/y/7Cysv86NjH/OjYx/5GRkf/q7/L/6u/y/+nv8v/p7/L/6e/y
+ /+nv8v/p7/L/6e/y/+rv8v/q7/L/4OTn/5aXl/9CPjr/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OzYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/6inpv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9OSkf/b25s/3BubP90c3L/WVZT/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/VlNQ/4+Pj/+QkI//kZGR/5OTk/9sa2j/OjYx/zo1Mf9kYmD/paen
+ /6anp/+nqan/qKqr/6utrv+tr6//qKqr/6Ciov+MjIv/a2ln/z87N/86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3RiM/+QdjT/cV8z/zo2Mv86NjH/gmwz
+ /5R5M/9oWTL/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PL/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+zjjT/8rk2
+ /9CjNf86NjH/OjYx/7+YNf/xuTb/wZk1/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6inpv86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/lXk0//G5Nv/tuDb/PTgy/zo2Mv+egDT/8bk2/+KwNv85NTL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+VejT/wJg1/9WnNf/xuTb/8bk2/8ugNf/BmDX/16g1//G5Nv/xuTb/yp81
+ /8acNf9hUzL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/qKem/+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx/zo2Mf86NjH/rIo0//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2
+ //G5Nv/xuTf/8bk2//G5Nv/xuTb/lHg0/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjUx/zo1Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dy/+/w8f/v8PH/7/Dx/6impv86NjH/OjYx/zo2Mf86NjH/OjYy/3BeMv+1kDX/so00
+ /+y2Nv/xuTb/2ak2/7aQNf+1jzX/8bo2//G5Nv/TpTb/tZA0/3ZjM/86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf+op6b/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+op6b/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYy/zo2Mv/InjX/8bk2/7qUNf86NjL/OjYy/9eoNf/xuTb/rYo0/zo2Mv86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv87NjL/qKem/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/qKem
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/0xEMv9RSDL/tI81//G5Nv/isDb/T0Yy/1BHMv++lzX/8bk2
+ /9SnNv9PRzL/T0Yy/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/6inpv86NjH/OjYx/zo2Mf86NjH/OjYx/zk1Mf/jsTX/8bk1//G5Nv/xuTb/8bk2
+ //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bg2//G5Nf9dUTP/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+op6b/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f+opqb/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/x501
+ //G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTX/gGoz/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/qKem/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/qKam/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/1dMMv9wXzP/dWIz//G6Nv/xuTb/rYs1/3FfM/+AbDP/8bk2//G5Nv+khDT/cF4z
+ /0hBMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/6inpv/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /6inp/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv/WqDX/8bk2/62LNP86NjL/OzYy
+ /+q2Nf/xuTb/nX40/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv+qqKj/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f+2tbX/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/qoo0
+ //G7Nv/LoTX/OzYy/zo2Mv/GnjX/8bw2/7eSNP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mv87NjL/vby8
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/3t7f/zw3M/86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zk1Mf83MjH/ODQx/zo2Mf86NjH/OTUy/zczMf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mf86NjH/OjYy/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mf86NjH/OzYy/zs2Mv86NjH/OjYx
+ /zo2Mf87NjL/Pzs3/+Tl5v/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f95dnT/OjYy
+ /zs2Mv86NjH/OjYy/zs2Mv86NjL/OjYx/zo2Mf86NjH/OjYx/zs2Mv87NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy/4F/ff/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/39/g/05LR/86NjL/OjYy/zs2Mv86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OzYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf87NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv86NjH/OjYy/zo2Mf86NjH/OzYy/zo2Mv86NjH/OzYy/1NPTP/i4uP/7/Dx/+/w8f/v8PH/7/Dx
+ /+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/w8f/Z2dr/Yl9c/zo2Mv86NjH/OzYy/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy
+ /zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv87NjL/OzYy/zo2Mv87NjL/OzYy/2JeW//a2tv/7/Dx
+ /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+7v8P+4uLj/f317
+ /2dkYf9mY2H/ZmNg/2ZjYf9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg
+ /2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg
+ /2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNg/2ZjYP9mY2D/ZmNh/2djYf9mY2D/fXp4
+ /7i3t//u7vD/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/u7/D/7u/x/+7v8f/u7/D/7u/w/+7v8P/u7/D/7u/w/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7u/x
+ /+7v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v8PH/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/7+/x
+ /+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v8PH/7+/x/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/v8f/v8PH/7/Dx/+/w8f/v8PH/AAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABACAAAAAAAAAkAAAAAAAAAAAA
+ AAAAAAAAAAAA7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7u/x
+ /+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x/+/v8f/v7/H/7+/x/+7v8f/v7/H/7u/x
+ /+/v8f/v7/H/7u/x/+7v8f/u7/H/7u/x/+7v8f/u7/H/7+/x/+/v8f/v7/H/7u/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v8PH/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7/Dx/+/v8f/v8PH/7+/x
+ /+/w8f/v7/H/7u/x/+bm6P/h4eP/4eHi/+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHi
+ /+Dh4v/g4eL/4OHi/+Hh4v/h4eL/4OHi/+Hh4v/g4eL/4OHi/+Dh4v/h4eL/4OHi/+Hh4v/g4eL/4eHi
+ /+Hh4v/h4eL/4eHi/+Hh4v/h4eL/4eHj/+bm6P/u7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f+9vLz/Y2Bd/0A8N/85NTH/OTUx/zk1Mf85NTH/OTUx/zk1MP85NTD/OTUw
+ /zk1MP85NTH/OTUx/zk1MP85NTD/OTUw/zk1MP85NTH/OTUw/zk1Mf85NTH/OTUx/zk1MP85NTH/OTUx
+ /zk1Mf85NTD/OTUw/zk1Mf85NTH/OTUw/zk1Mf85NTH/OTUx/z87Nv9hXlv/ubi4/+/v8f/v7/H/7+/x
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/6empf88ODT/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zs2Mv86NjL/PDgz
+ /6KgoP/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/29vc/0I9Of86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/0E8OP/b29z/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/oqGg/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf80UV7/NFFe/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv+lpKP/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYuK
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYx
+ /zo2Mf85Ozr/KX+r/zRPW/8scpX/JJfT/zo1Mv86NjH/MGF4/yx1mv86NzP/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+OjIv/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx
+ /zo2Mf86NTH/OjUx/zk8O/8mjcH/IKbv/zFfdv8zVmb/IKbv/zdDSP86NjH/LHSY/yCo8v8qfaj/Ojc0
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx
+ /+/w8f/v7/H/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/ODw8/yeNwv8gp/D/MGR+/zo1Mf85Ojn/IKbu/zBfdv86NjH/Ojcz
+ /yt4n/8gp/L/Knym/zo3NP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv+Nion/7/Dx/+/w8f/v7/H/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/KIW1/yCn8v8uaYb/OjYy/zo2Mf86NjH/Jo/G
+ /yp8p/86NjH/OjYx/zo3M/8qfqj/IKjy/y1xkv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx/zo1Mf86NTH/MF5z/yCl7v8lkcr/OD4+
+ /zo2Mf86NTH/LHKV/yOY1/86NzP/OjYx/zZJUv8jnd7/Ip/i/zVMVf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NTH/OjYy
+ /zBfdf8hpu7/JZDJ/zg+P/86NjH/M1Vk/yCn8f82RUv/NUpS/yOd3/8in+L/NUxW/zo2Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PL/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NjH/OjUx/zo2Mf8xXXL/IKbv/y5si/86NjH/OTw7/yGk6v8wYnv/KIOx/yKf4v81TFb/OjYx
+ /zo2Mv86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NTH/OjYx/zo2Mf86NTH/OjUx/zo1Mf86NTH/NUhP/zk4Nf86NTH/OjUx/yt3nf8vZoD/OTs6
+ /zdDRv86NjH/OjYx/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/0dEQP+am5v/m5yc/1RRTv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/V1RR
+ /5ucnP+bnJz/ZGJg/zo2Mf9ZVlT/o6Wl/6Smpv+kpab/pKam/6KkpP+bnJz/hoaG/1pXVf86NjL/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ
+ /zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//q7/L/6u/y/3p5eP86NTH/OjYx/z04NP9CPjr/Ozcz
+ /zo2Mf86NjH/fXx6/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y
+ /+rv8v/BxMX/WVZT/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/jIqJ/zo1Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdWv/q7/L/6u/y/3t6ef86NjH/OjYx
+ /6yur//j6Ov/jo6O/zo2Mf86NTH/fXx7/+nv8v/p7/L/kpOS/zo2Mf97enj/6e/y/+rv8v/m6+7/3eHk
+ /93i5P/m6+//6u/y/+rv8v/q7/L/4OTn/19cWv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqI/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y
+ /3t6ef86NjH/WFVT/+fs8P/q7/L/2+Dj/0RAPP86NjH/fXx7/+rv8v/p7/L/kpOS/zo2Mf97enj/6e/y
+ /+nv8v+4u7z/Pzs3/0A7N/9FQT7/c3Jx/9fb3v/q7/L/6u/y/8zP0v8+OTX/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /2BdWv/p7/L/6e/y/3t6ef86NjL/qaur/+rv8v/q7/L/6u/y/4iIh/86NjH/fXx7/+rv8v/p7/L/kpOS
+ /zo2Mf97enj/6e/y/+rv8v+2ubr/OjYx/zo2Mf86NjH/OjYx/1xZV//m6+//6u/y/+rv8v9ubGr/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/3t6ef9OS0j/5uvu/+nv8v/p7/L/6u/y/9XZ2/9APDj/fXx7
+ /+rv8v/p7/L/kpOS/zo2Mf96enj/6u/y/+rv8v+3ubr/OjYx/zo2Mf86NjH/OjYx/zo2Mf++wcL/6u/y
+ /+rv8v+Zmpr/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/jIqJ
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/3t6ef+dnp7/6u/y/+br7v+goaL/6e/y
+ /+rv8v9+fXv/fXx7/+rv8v/q7/L/kpOS/zo2Mf97enn/6u/y/+nv8v+2ubr/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+ipKT/6u/y/+rv8v+trq//OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y/4uLi//h5un/6u/y
+ /6usrf9BPTn/3ODj/+rv8v/Q1Nb/gH9+/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y/+nv8v+3ubr/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+mp6j/6u/y/+rv8v+tr6//OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx
+ /+/w8f/v8PH/7/Dy/+/w8f/v7/H/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y
+ /9TY2//q7/L/5+zw/1pXVP86NjH/kZKR/+rv8v/q7/L/vcDC/+rv8v/q7/L/kpOS/zo2Mf97enj/6u/y
+ /+rv8v+2ubr/OjYx/zo2Mf86NjH/OjYx/zs2Mv/Jzc//6u/y/+rv8v+Zmpr/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /2BdW//p7/L/6u/y/+nv8v/q7/L/tLa3/zo2Mv86NjH/SUVC/+Hl6P/q7/L/6u/y/+rv8v/p7/L/kpOS
+ /zo2Mf97enn/6u/y/+rv8v+3ubr/OjYx/zo2Mf86NjH/OjYx/3Bvbf/p7vH/6u/y/+rv8v9ubGr/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8f/v8PH/7/Dy/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/2BdW//p7/L/6u/y/+nv8v/p7vL/X1xa/zo2Mf86NjH/OjYx/52env/q7/L/6e/y
+ /+nv8v/p7/L/kpOS/zo2Mf97enn/6e/y/+rv8v/BxMX/XFlX/1xaV/9qaGb/mZqa/+Tp7P/q7/L/6u/y
+ /8zQ0v8+Ojb/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Mi4n/7/Dx/+/w8v/v8PH/7/Dy/+/w8f/v8PH/jIqJ
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdW//p7/L/6e/y/+rv8v+6vb//OjUx/zo2Mf86NjH/OjYx
+ /1BMSf/k6e3/6u/y/+rv8v/q7/L/kpOS/zo2Mf97enn/6u/y/+nv8v/p7/L/6e/y/+nv8v/p7/L/6e/y
+ /+nv8v/q7/L/3OHk/1tZVv86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dy
+ /+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/2BdWv/q7/L/6u/y/+rv8v9oZWP/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+nqar/6u/y/+rv8v/q7/L/k5OS/zo2Mf97enn/6u/y/+rv8v/p7/L/6e/y
+ /+nv8v/p7/L/6u/y/+nu8f+2ubr/U1BN/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/z04Nf9gXlv/Y2Be
+ /2BeXP87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf9KRkP/enl4/3t6eP98fHr/VlNQ/zo2Mf9ST0v/i4uK
+ /4uLiv+NjYz/j4+P/4+Pj/+IiIf/dHJx/01KRv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf+Mion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PL/jIqJ/zo2Mf86NjH/OjYx/zo2Mf86NjH/sY41
+ /9OlNf9FPjL/SEEy/9mqNf+sijT/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo1Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx
+ /zo2Mf86NjL/sIw0//G5Nv9iVDP/Pjky/+GvNv/hrzb/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ
+ /zo2Mf86NjH/OjYx/2BTMv/MoDX/4a82//G5Nv/cqzb/zaA1/+y2Nv/xuTb/06U1/6qINP86NjH/OjYx
+ /zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/jIqJ/zo2Mf86NjH/OjYx/1VLMv/ptDb/6rU2//G5Nv/vuDb/6rU2/+63Nv/xuTb/7bY2
+ /9SmNf88NzH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+Mion/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zs2Mv9CPDL/VEoy//G5Nv/HnDX/Qjwy
+ /4pxM//xuTb/kXY0/0A6Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mv+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx/zo2Mf9kVTL/fWcz
+ /+m0Nv/ptDb/d2Mz/5h7NP/xuTb/wpk1/3hjM/9MQzL/OjYx/zo2Mf86NjH/OjYx/zo1Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+Ni4n/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jYqJ/zo2Mf86NjH/OjYx
+ /zo2Mf+wjDT/8bk2//G5Nv/xuTb/8bk2//G5Nv/xuTb/8bk2//G5Nv+RdTP/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf+Nion/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/jIqJ
+ /zo2Mf86NjH/OjYx/zo2Mf9jVDL/kHU0/8OaNf/xuTb/s481/5F2NP/irzb/77g2/5h7NP9mVzP/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv+Ni4n/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f/v8PH/joyL/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/31nM//xuTb/lnk0/zo2Mv+7lDT/8bk2
+ /1tOMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zs2Mv+Qjoz/7/Dx
+ /+/w8f/v8PH/7/Dx/+/w8f/v8PH/paOi/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/0tCMv+TdjP/cF4z
+ /zo2Mf9rWjP/lHg0/1NIMv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zs2Mv+rqqn/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/3d3e/0M/O/86NjL/OjYx/zs2Mv86NjL/OjYx
+ /zo2Mf86NjH/OzYy/zo2Mf87NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OzYy/0ZCPv/h4eL/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v8PH/7+/x/6uqqf89OTX/OjYy
+ /zo2Mv86NjL/OjYx/zo2Mf86NjH/OjYy/zo2Mf86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf87NjL/OjYx/zo2Mv86NjL/Pjk1/7Cvrv/v8PH/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx
+ /+/w8f+/v7//ZGFe/z46Nv85NTH/OTUx/zk1Mf85NTH/OTUx/zk1Mf85NTD/OTUx/zk1MP85NTD/OTUx
+ /zk1Mf85NTD/OTUx/zk1Mf85NTH/OTUx/zk1Mf85NTD/OTUw/zk1Mf85NTD/OTUx/zk1Mf85NTD/OTUw
+ /zk1Mf85NTH/OTUx/zk1Mf85NTH/OTUx/z45Nf9kYF7/v76+/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7+/x/+/w8f/v7/H/7u/x/+bm5//k5OX/4+Tl/+Tk5f/j4+X/4+Tl/+Pk5f/j4+X/4+Tl
+ /+Pk5f/j5OX/4+Tl/+Pj5f/j4+X/4+Pl/+Pj5f/j5OX/4+Pl/+Pk5f/j5OX/4+Tl/+Pk5f/j5OX/4+Tl
+ /+Pk5f/j5OX/4+Tl/+Pk5f/j4+X/4+Tl/+Pk5f/j5OX/4+Tl/+Xm5//u7/D/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x/+/v8f/v8PH/7+/x/+/w8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v8PH/7/Dx/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7/Dx/+/w8f/v8PH/AAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAO/w8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx
+ /+/w8f/v7/H/7/Dx/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/u7/H/7+/x
+ /+7v8f/v7/H/7u/x/+7v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/v8f/v7/H/7/Dx
+ /+/w8f/v8PH/7/Dx/+/v8f/v7/H/xcXF/6qpqP+op6f/qaen/6inp/+op6f/qKen/6inp/+op6f/qKem
+ /6inp/+op6f/qKen/6inp/+op6f/qKen/6inp/+op6f/qKen/6inp/+op6f/qaen/6moqP/ExMT/7u/x
+ /+/v8f/v8PH/7+/x/+/w8f/v8PH/6uvs/29saf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OzYy
+ /zs2Mv9saWb/6err/+/w8f/v8PH/7/Dx/+/w8f+enZz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf+enZz/7/Dx/+/w8f/v8PH/7/Dx/3Rxb/86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo1Mf86NjH/Ojg1/zBhef8xXXL/LW2N/zo2Mf8yXHD/OD9B/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3VycP/v8PH/7/Dx/+/w8f/v8PH/cW5s/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zk4Nf8ohLT/J4m9/zZIT/8mjsf/OjYx/yx0mP8lldH/OEBC
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v7/H/7/Dx/+/w8f9xbmv/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/KYGv/yaLwf85Ojj/OjUx/yOa2f85Ozv/OjYy
+ /yt3nv8kldH/OTo4/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx
+ /3Fua/86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo1Mf8vY3z/Ip3f/zZJUf86NjH/KX+s
+ /zJXaf84Pj//JZLM/yt4n/86NjL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx
+ /+/w8f/v8PH/cW5s/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf8wY3z/I5va
+ /zo3NP8wYnv/K3Sa/yeHuP8reJ//OjYy/zo2Mf86NjH/OjUx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s
+ /+/w8f/v8PH/7/Dx/+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjUx/zo2Mf86NTH/OjUx
+ /zo2Mf84P0D/OjUx/zg/Qf8xXnT/OD4+/zo2Mv86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3Fua/86NjH/OjYx/zo2Mf86NjH/a2ln/3Fvbv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/1xaV/97enn/TUlG/0hEQf+BgH//gYB//4GAf/98e3r/ZmRi/z46Nv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v8PH/cW5r/zo2Mf86NjH/OjYx/zo2Mf/IzM3/2t7h
+ /zo2Mf89ODT/dHJx/0hEQP86NjH/oaKj/+rv8v91dHL/ZWNh/+nv8v/p7/L/6e/y/+nv8v/q7/L/19ze
+ /2xqaP86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx/+/w8f9xbmv/OjYx/zo2Mf86NjH/OjYx
+ /8jLzf/a3+H/OjYx/3l4d//q7/L/np+g/zo2Mf+hoqP/6u/y/3V0cv9lY2H/6e/y/9LW2P9wbmz/dnV0
+ /62vsP/q7/L/5ert/1ZTUP86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3Fua/86NjH/OjYx
+ /zo2Mf86NjH/yMvN/9rf4f87NjL/y8/R/+rv8v/i5+r/SEVB/6Gjo//q7/L/dXRy/2VjYf/q7/L/yMvN
+ /zo2Mf86NjH/OjYx/7a4uf/q7/L/n6Cg/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v7/H/cW5r
+ /zo2Mf86NjH/OjYx/zo2Mf/Iy83/2t/i/25ta//q7/L/x8vM/+nv8v+UlJT/oaOj/+rv8v91dHL/ZWNh
+ /+rv8v/Hy83/OjYx/zo2Mf86NjH/g4OC/+rv8v++wcP/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx
+ /+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/8jLzf/a3+L/wsXH/+Hl6P9JRUL/1Njb/97j5v+rra7/6u/y
+ /3V0cv9lY2H/6e/y/8fLzf86NjH/OjYx/zo2Mf+Hhob/6u/y/7/Bw/86NjH/OjYx/zo2Mf9xbmz/7/Dx
+ /+/w8f/v8PH/7/Dx/3FubP86NjH/OjYx/zo2Mf86NjH/yMzN/+nu8v/q7/L/mZqa/zo2Mf+GhoX/6u/y
+ /+Xq7f/q7/L/dXRy/2VjYf/q7/L/yMvN/zo2Mf86NjH/PDgz/8HExv/q7/L/n6Cg/zo2Mf86NjH/OjYx
+ /3FubP/v8PH/7/Dx/+/w8v/v8PH/cW5r/zo2Mf86NjH/OjYx/zo2Mf/Iy83/6u/y/+Tp7P9LR0P/OjYx
+ /0I9Of/c4eP/6e/y/+rv8v91dHL/ZWNh/+nv8v/X3N7/i4uL/5GSkf/Dxsj/6u/y/+Tp7P9WU1D/OjYx
+ /zo2Mf86NjH/cW5s/+/w8v/v8PH/7/Dy/+/w8f9xbmz/OjYx/zo2Mf86NjH/OjYx/8jLzf/q7/L/oKKi
+ /zo2Mf86NjH/OjYx/5GRkP/q7/L/6u/y/3V0cv9lY2H/6u/y/+nv8v/p7/L/6e/y/+rv8v/S1tn/Z2Vj
+ /zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3FubP86NjH/OjYx/zo2Mf9eUTL/WlNG
+ /2hhUf9kVzr/OjYx/zo2Mf86NjH/QT05/2VjYP9mZGL/R0M//0VBPf9wbmz/cXBu/3NycP9vbmz/W1hV
+ /zs3M/86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx/+/w8f/v8PH/cW5r/zo2Mf86NjH/OjYx
+ /8ueNf+NcjT/dGEz/+GvNv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s/+/w8f/v8PH/7/Dx/+/w8f9xbmv/OjYx
+ /zo2Mf+9lTX/6rQ2/+izNv/frTb/8bk2/92rNf9aTjL/OjYx/zo2Mf86NTH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx
+ /3FubP86NjH/OjYx/2ZWM/+ohjT/3aw2/3hjM//rtTb/nH00/0lBMv86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/3FubP/v8PH/7/Dx
+ /+/w8f/v8PH/cW5s/zo2Mf86NjH/aVgy/7qSNP/ttzb/oIA0/+SwNv/BmDX/dmEz/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/cW5s
+ /+/w8f/v8PH/7/Dx/+/w8f9xbmz/OjYx/zo2Mf9lVTL/so00//G5Nv/AlzX/1aY1/96sNf+KcTP/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf9xbmz/7/Dx/+/w8f/v8PH/7/Dx/3VycP86NjH/OjYx/zo2Mf86NjH/2ak1/3tmM/+JcDP/zqE1
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYy/3d0cv/v8PH/7/Dx/+/w8f/v8PH/oZ+e/zo2Mv86NjH/OjYx/zo2Mf85NTH/OjUx
+ /zo2Mv86NTH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf87NjL/paSj/+/w8f/v8PH/7/Dx/+/w8f/r6+3/cW5s/zo2Mv86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx
+ /zo2Mf86NjH/OjYx/zs2Mv86NjL/OzYy/3Jvbf/s7O7/7/Dx/+/w8f/v8PH/7/Dx/+/w8f/v7/H/xcXF
+ /6upqf+qqan/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo/6qpqP+qqaj/qqmo
+ /6qpqf+qqaj/qqmo/6qpqP+qqan/qqmp/6qpqf/FxMT/7+/x/+/v8f/v7/H/7+/x/+/w8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7/Dx/+/w8f/v7/H/7+/x/+/w8f/v7/H/7/Dx
+ /+/w8f/v8PH/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/w8f/v7/H/7+/x
+ /+/v8f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAADv8PH/7+/x
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v8PH/7/Dx
+ /87Nzv95dnT/cW9s/3FubP9xbmz/cW5s/3FubP9xbmz/cW5s/3FubP9xb2z/cW9s/3l2dP/MzM3/7/Dx
+ /+/w8f9iXlv/OjYx/zo2Mf86NjH/OjYx/zo2Mv81SlP/N0RI/zhCRf86NjH/OjYx/zo2Mf86NjH/Yl9c
+ /+/w8f/v8PH/VlJO/zo2Mf86NjH/OjYx/zo2Mf8scpb/NFBd/y9mg/8tbY7/NFFf/zo2Mf86NjH/OjYx
+ /1ZST//v8PH/7/Dx/1ZSTv86NjH/OjYx/zo2Mf86NjH/L2aC/zNUZP8ua4v/LHSZ/zZGTf86NjH/OjYx
+ /zo2Mf9WUk//7/Dx/+/w8f9WUk7/OjYx/0ZCP/9IRED/OjYx/zo2Mf9SUlD/P0tP/11dW/9cWlf/RkI/
+ /zo2Mf86NjH/VlJO/+/w8f/v8PH/VVJO/zo2Mf+BgX//ioqJ/4WEg/9XVFH/xcnK/21raf/k6ez/rrCx
+ /9ba3f94d3X/OjYx/1ZSTv/v8PH/7/Dx/1ZSTv86NjH/gYF//5eYmP/Z3uD/qqys/8XJy/9ta2n/2d3f
+ /zo2Mf9ramf/zNDS/zo2Mf9WUk//7/Dx/+/w8f9WUk7/OjYx/4GBf//c4OP/f399/8nMzv/Z3eD/bWtp
+ /9nd3/86NjH/b25s/8zQ0v86NjH/VlJP/+/w8f/v8PH/VlJO/zo2Mf+BgX//1trd/z46Nv96eXj/6u/y
+ /21raf/l6u3/vL/A/9rf4f93dnT/OjYx/1ZSTv/v8PH/7/Dx/1ZSTv86NjH/hG04/4hyPf86NjH/PDcz
+ /1BMSf9APDf/VVJP/1ZTUP9DPzv/OjYx/zo2Mf9WUk//7/Dx/+/w8f9WUk7/ZlYz/9amNf/NnzX/h24z
+ /zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/VlJP/+/w8f/v8PH/VlJO/1BGMv/TpDX/xps1
+ /6iFNP86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/1ZST//v8PH/7/Dx/2NfXP86NjH/YlIy
+ /15QMv9fUDL/OjYx/zo2Mf86NjH/OjYx/zo2Mf86NjH/OjYx/zo2Mf9kYV7/7/Dx/+/w8f/Ozs//eXZ0
+ /3Jvbf9yb23/cm9t/3Jvbf9yb23/cm9t/3Jvbf9yb23/cm9t/3Jvbf95dnT/z87P/+/v8f/v8PH/7/Dx
+ /+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/7+/x/+/v8f/v7/H/AAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA==
+
+
+
+ 370, 17
+
+
\ No newline at end of file
diff --git a/hMarkdown/Program.cs b/hMarkdown/Program.cs
new file mode 100644
index 0000000..831248c
--- /dev/null
+++ b/hMarkdown/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace hMarkdown
+{
+ internal static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/hMarkdown/Properties/AssemblyInfo.cs b/hMarkdown/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..914c962
--- /dev/null
+++ b/hMarkdown/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("hMarkdown")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("hMarkdown Reader")]
+[assembly: AssemblyCopyright("Copyright © 2025")]
+[assembly: AssemblyTrademark("by hOLOlu")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a8e10c05-f985-4702-8ae2-b5d95e9aed83")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.1.0")]
+[assembly: AssemblyFileVersion("1.0.1.0")]
diff --git a/hMarkdown/Properties/Resources.Designer.cs b/hMarkdown/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..16f0588
--- /dev/null
+++ b/hMarkdown/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace hMarkdown.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("hMarkdown.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/hMarkdown/Properties/Resources.resx b/hMarkdown/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/hMarkdown/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/hMarkdown/Properties/Settings.Designer.cs b/hMarkdown/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..629057e
--- /dev/null
+++ b/hMarkdown/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace hMarkdown.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/hMarkdown/Properties/Settings.settings b/hMarkdown/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/hMarkdown/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/hMarkdown/README.md b/hMarkdown/README.md
new file mode 100644
index 0000000..11e3faf
--- /dev/null
+++ b/hMarkdown/README.md
@@ -0,0 +1,36 @@
+# hMarkdown
+
+hMarkdown, .NET Framework 4.8 ile geliþtirilmiþ bir Windows Forms uygulamasýdýr. Markdown dosyalarýný düzenlemek ve yönetmek için kullanýcý dostu bir arayüz sunar.
+
+## Özellikler
+
+- Basit ve sezgisel arayüz ile Markdown dosyalarýný düzenleme
+- Markdown belgelerini kaydetme ve yükleme
+- Markdown içeriðini önizleme (destekleniyorsa)
+- Hafif ve hýzlý çalýþma
+
+## Kurulum
+
+1. Depoyu klonlayýn veya indirin.
+2. Visual Studio 2022 ile projeyi açýn.
+3. __Build Solution__ komutunu kullanarak projeyi derleyin.
+4. Uygulamayý çýktý klasöründen (`bin\Release` veya `bin\Debug`) çalýþtýrýn.
+
+## Kullaným
+
+- `hMarkdown.exe` dosyasýný baþlatýn.
+- Bir Markdown dosyasý açýn veya yeni bir dosya oluþturun.
+- Ýçeriðinizi düzenleyin ve deðiþiklikleri kaydedin.
+
+## Gereksinimler
+
+- Windows iþletim sistemi
+- .NET Framework 4.8
+
+## Lisans
+
+Bu proje MIT Lisansý ile lisanslanmýþtýr.
+
+---
+
+*Sorularýnýz veya katkýlarýnýz için lütfen bir issue açýn veya pull request gönderin.*
\ No newline at end of file
diff --git a/hMarkdown/bin/Debug/Markdig.dll b/hMarkdown/bin/Debug/Markdig.dll
new file mode 100644
index 0000000..7db7513
Binary files /dev/null and b/hMarkdown/bin/Debug/Markdig.dll differ
diff --git a/hMarkdown/bin/Debug/Markdig.xml b/hMarkdown/bin/Debug/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/hMarkdown/bin/Debug/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/hMarkdown/bin/Debug/System.Buffers.dll b/hMarkdown/bin/Debug/System.Buffers.dll
new file mode 100644
index 0000000..67a31fb
Binary files /dev/null and b/hMarkdown/bin/Debug/System.Buffers.dll differ
diff --git a/hMarkdown/bin/Debug/System.Buffers.xml b/hMarkdown/bin/Debug/System.Buffers.xml
new file mode 100644
index 0000000..fe1f651
--- /dev/null
+++ b/hMarkdown/bin/Debug/System.Buffers.xml
@@ -0,0 +1,173 @@
+
+
+
+ System.Buffers
+
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+
+
+
+ Renting and returning buffers with an can increase performance
+ in situations where arrays are created and destroyed frequently, resulting in significant
+ memory pressure on the garbage collector.
+
+
+ This class is thread-safe. All members may be used by multiple threads concurrently.
+
+
+
+
+ The lazily-initialized shared pool instance.
+
+
+
+ Retrieves a shared instance.
+
+
+ The shared pool provides a default implementation of
+ that's intended for general applicability. It maintains arrays of multiple sizes, and
+ may hand back a larger array than was actually requested, but will never hand back a smaller
+ array than was requested. Renting a buffer from it with will result in an
+ existing buffer being taken from the pool if an appropriate buffer is available or in a new
+ buffer being allocated if one is not available.
+
+
+
+ Ensures that has been initialized to a pool and returns it.
+
+
+
+ Creates a new instance using default configuration options.
+
+ A new instance.
+
+
+
+ Creates a new instance using custom configuration options.
+
+ The maximum length of array instances 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 with the specified configuration options.
+
+ The created pool will group arrays into buckets, with no more than
+ in each bucket and with those arrays not exceeding in length.
+
+
+
+
+ Retrieves a buffer that is at least the requested length.
+
+ The minimum length of the array needed.
+
+ An that is at least in length.
+
+
+ This buffer is loaned to the caller and should be returned to the same pool via
+ so that it may be reused in subsequent usage of .
+ It is not a fatal error to not return a rented buffer, but failure to do so may lead to
+ decreased application performance, as the pool may need to create a new buffer to replace
+ the one lost.
+
+
+
+
+ Returns to the pool an array that was previously obtained via on the same
+ instance.
+
+
+ The buffer previously obtained from to return to the pool.
+
+
+ If true and if the pool will store the buffer to enable subsequent reuse,
+ will clear of its contents so that a subsequent consumer via
+ will not see the previous consumer's content. If false or if the pool will release the buffer,
+ the array's contents are left unchanged.
+
+
+ Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
+ and must not use it. The reference returned from a given call to must only be
+ returned via once. The default
+ may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
+ if it's determined that the pool already has enough buffers stored.
+
+
+
+ The reason for a BufferAllocated event.
+
+
+ The pool is allocating a buffer to be pooled in a bucket.
+
+
+ The requested buffer size was too large to be pooled.
+
+
+ The pool has already allocated for pooling as many buffers of a particular size as it's allowed.
+
+
+
+ Event for when a buffer is rented. This is invoked once for every successful call to Rent,
+ regardless of whether a buffer is allocated or a buffer is taken from the pool. In a
+ perfect situation where all rented buffers are returned, we expect to see the number
+ of BufferRented events exactly match the number of BuferReturned events, with the number
+ of BufferAllocated events being less than or equal to those numbers (ideally significantly
+ less than).
+
+
+
+
+ Event for when a buffer is allocated by the pool. In an ideal situation, the number
+ of BufferAllocated events is significantly smaller than the number of BufferRented and
+ BufferReturned events.
+
+
+
+
+ Event raised when a buffer is returned to the pool. This event is raised regardless of whether
+ the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned
+ events exactly matches the number of BufferRented events.
+
+
+
+ The default maximum length of each array in the pool (2^20).
+
+
+ The default maximum number of arrays per bucket that are available for rent.
+
+
+ Lazily-allocated empty array used when arrays of length 0 are requested.
+
+
+ Gets an ID for the pool to use with events.
+
+
+ Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd.
+
+
+
+ Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length.
+
+
+
+ Gets an ID for the bucket to use with events.
+
+
+ Takes an array from the bucket. If the bucket is empty, returns null.
+
+
+
+ Attempts to return the buffer to the bucket. If successful, the buffer will be stored
+ in the bucket and true will be returned; otherwise, the buffer won't be stored, and false
+ will be returned.
+
+
+
+ The buffer is not associated with this pool and may not be returned to it.
+
+
+
diff --git a/hMarkdown/bin/Debug/System.Memory.dll b/hMarkdown/bin/Debug/System.Memory.dll
new file mode 100644
index 0000000..9b4f824
Binary files /dev/null and b/hMarkdown/bin/Debug/System.Memory.dll differ
diff --git a/hMarkdown/bin/Debug/System.Memory.xml b/hMarkdown/bin/Debug/System.Memory.xml
new file mode 100644
index 0000000..ff0619c
--- /dev/null
+++ b/hMarkdown/bin/Debug/System.Memory.xml
@@ -0,0 +1,3489 @@
+
+
+
+ System.Memory
+
+
+
+
+ Reads bytes as primitives with specific endianness
+
+
+ For native formats, MemoryExtensions.Read{T}; should be used.
+ Use these helpers when you need to read specific endinanness.
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip sbyte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip byte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Extension methods for
+
+
+
+
+ Returns position of first occurrence of item in the
+
+
+
+
+ Copy the to the specified .
+
+ The source .
+ The destination .
+
+
+
+ Converts the to an array
+
+
+
+
+ Writes contents of to
+
+
+
+
+ Represents a sink
+
+
+
+
+ Notifies that amount of data was written to /
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Owner of Memory that is responsible for disposing the underlying memory appropriately.
+
+
+
+
+ Returns a Memory.
+
+
+
+
+ Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them.
+
+
+
+
+ Call this method to indicate that the IPinnable object can not be moved by the garbage collector.
+ The address of the pinned object can be taken.
+ The offset to the element within the memory at which the returned points to.
+
+
+
+
+ Call this method to indicate that the IPinnable object no longer needs to be pinned.
+ The garbage collector is free to move the object now.
+
+
+
+
+ A handle for the memory.
+
+
+
+
+ Creates a new memory handle for the memory.
+
+ pointer to memory
+ reference to manually managed object, or default if there is no memory manager
+ handle used to pin array buffers
+
+
+
+ Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change.
+
+
+
+
+ Frees the pinned handle and releases IPinnable.
+
+
+
+
+ Manager of that provides the implementation.
+
+
+
+
+ Returns a .
+
+
+
+
+ Returns a span wrapping the underlying memory.
+
+
+
+
+ Returns a handle to the memory that has been pinned and hence its address can be taken.
+
+ The offset to the element within the memory at which the returned points to. (default = 0)
+
+
+
+ Lets the garbage collector know that the object is free to be moved now.
+
+
+
+
+ Returns a for the current .
+
+ The element count in the memory, starting at offset 0.
+
+
+
+ Returns a for the current .
+
+ The offset to the element which the returned memory starts at.
+ The element count in the memory, starting at element offset .
+
+
+
+ Returns an array segment.
+ Returns the default array segment if not overriden.
+
+
+
+
+ Implements IDisposable.
+
+
+
+
+ Clean up of any leftover managed and unmanaged resources.
+
+
+
+
+ Represents a pool of memory blocks.
+
+
+
+
+ Returns a singleton instance of a MemoryPool based on arrays.
+
+
+
+
+ Returns a memory block capable of holding at least elements of T.
+
+ If -1 is passed, this is set to a default value for the pool.
+
+
+
+ Returns the maximum buffer size supported by this pool.
+
+
+
+
+ Constructs a new instance of a memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+
+ This enum defines the various potential status that can be returned from Span-based operations
+ that support processing of input contained in multiple discontiguous buffers.
+
+
+
+
+ The entire input buffer has been processed and the operation is complete.
+
+
+
+
+ The input is partially processed, up to what could fit into the destination buffer.
+ The caller can enlarge the destination buffer, slice the buffers appropriately, and retry.
+
+
+
+
+ The input is partially processed, up to the last valid chunk of the input that could be consumed.
+ The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry.
+
+
+
+
+ The input contained invalid bytes which could not be processed. If the input is partially processed,
+ the destination contains the partial result. This guarantees that no additional data appended to the input
+ will make the invalid sequence valid.
+
+
+
+
+ Represents a sequence that can read a sequential series of .
+
+
+
+
+ Returns empty
+
+
+
+
+ Length of the .
+
+
+
+
+ Determines if the is empty.
+
+
+
+
+ Determines if the contains a single segment.
+
+
+
+
+ Gets from the first segment.
+
+
+
+
+ A position to the start of the .
+
+
+
+
+ A position to the end of the
+
+
+
+
+ Creates an instance of from linked memory list represented by start and end segments
+ and corresponding indexes in them.
+
+
+
+
+ Creates an instance of from the .
+
+
+
+
+ Creates an instance of from the , start and index.
+
+
+
+
+ Creates an instance of from the .
+ Consumer is expected to manage lifetime of memory until is not used anymore.
+
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at ', with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The starting (inclusive) at which to begin this slice.
+ The ending (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The starting (inclusive) at which to begin this slice.
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The start index at which to begin this slice.
+
+
+
+
+
+
+ Returns an enumerator over the
+
+
+
+
+ Returns a new at an from the start of the sequence.
+
+
+
+
+ Returns a new at an from the
+
+
+
+
+ Tries to retrieve next segment after and return its contents in .
+ Returns false if end of was reached otherwise true.
+ Sets to the beginning of next segment if is set to true.
+
+
+
+
+ An enumerator over the
+
+
+
+ Initialize the enumerator.
+ The to enumerate.
+
+
+
+ The current
+
+
+
+
+ Moves to the next in the
+
+
+
+
+
+ Represents a linked list of nodes.
+
+
+
+
+ The value for current node.
+
+
+
+
+ The next node.
+
+
+
+
+ The sum of node length before current.
+
+
+
+
+ Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X')
+ and an optional precision ranging from 0..99, or the special value NoPrecision.
+
+
+
+
+ Precision values for format that don't use a precision, or for when the precision is to be unspecified.
+
+
+
+
+ The maximum valid precision value.
+
+
+
+
+ The character component of the format.
+
+
+
+
+ The precision component of the format. Ranges from 0..9 or the special value NoPrecision.
+
+
+
+
+ true if Precision is a value other than NoPrecision
+
+
+
+
+ true if the StandardFormat == default(StandardFormat)
+
+
+
+
+ Create a StandardFormat.
+
+ A type-specific formatting character such as 'G', 'D' or 'X'
+ An optional precision ranging from 0..9 or the special value NoPrecision (the default)
+
+
+
+ Converts a character to a StandardFormat using the NoPrecision precision.
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Compute a hash code.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns the format in classic .NET format.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns false if both the Symbol and Precision are equal.
+
+
+
+
+ Convert between binary data and UTF-8 encoded text that is represented in base 64.
+
+
+
+
+ Decode the span of UTF-8 encoded text represented as base 64 into binary data.
+ If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4.
+
+ The input span which contains UTF-8 encoded text in base 64 that needs to be decoded.
+ The output span which contains the result of the operation, i.e. the decoded binary data.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input
+ - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0.
+
+
+
+
+ Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data.
+ The decoded binary output is smaller than the text data contained in the input (the operation deflates the data).
+ If the input is not a multiple of 4, it will not decode any.
+
+ The input span which contains the base 64 text data that needs to be decoded.
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4).
+ It does not return DestinationTooSmall since that is not possible for base 64 decoding.
+ It does not return NeedMoreData since this method tramples the data in the buffer and
+ hence can only be called once with all the data in the buffer.
+
+
+
+
+ Encode the span of binary data into UTF-8 encoded text represented as base 64.
+
+ The input span which contains binary data that needs to be encoded.
+ The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input
+ - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3).
+
+
+
+
+ Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64.
+ The encoded text output is larger than the binary data contained in the input (the operation inflates the data).
+
+ The input span which contains binary data that needs to be encoded.
+ It needs to be large enough to fit the result of the operation.
+ The amount of binary data contained within the buffer that needs to be encoded
+ (and needs to be smaller than the buffer length).
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire buffer
+ - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input
+ It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer.
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the symbol contained within the standard format. If the standard format
+ has not been initialized, returns the provided fallback symbol.
+
+
+
+
+ Fills a buffer with the ASCII character '0' (0x30).
+
+
+
+
+ Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+
+
+ Formats a Boolean as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTimeOffset as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTime as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Decimal as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Double as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Single as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Guid as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Used to provide access to the individual bytes of a GUID.
+
+
+
+
+ Formats a Byte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an SByte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Unt16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a TimeSpan as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Methods to parse common data types to Utf8 strings.
+
+
+
+
+ Parses a Boolean at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTime at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTimeOffset at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset/Local time conversion factory.
+
+
+
+
+ Overflow-safe DateTime factory.
+
+
+
+
+ Parses a Decimal at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Single at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Double at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Guid at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a SByte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Byte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a TimeSpan at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan
+ parser rejects the string (even if the extra digits are all zeroes.)
+
+
+
+
+ Overflow-safe TryCreateTimeSpan
+
+
+
+
+ Memory represents a contiguous region of arbitrary memory similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 0 index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The number of items in the memory.
+
+ Thrown when the specified is negative.
+
+ For internal infrastructure only
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+ Thrown when the specified or is negative.
+
+ For internal infrastructure only
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ Determines whether the specified object is equal to the current object.
+ Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length.
+
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Serves as the default hash function.
+
+
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+
+
+ Removes all leading and trailing white-space characters from the span.
+
+
+
+
+ Removes all leading white-space characters from the span.
+
+
+
+
+ Removes all trailing white-space characters from the span.
+
+
+
+
+ Removes all leading and trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading and trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all leading occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Indicates whether the specified span contains only white-space characters.
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Reverses the sequence of the elements in the entire span.
+
+
+
+
+ Creates a new span over the target array.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the portion of the target array segment.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=array.Length).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory over the portion of the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Copies the contents of the array into the span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source array.
+
+
+
+
+
+ Copies the contents of the array into the memory. If the source
+ and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The memory to copy items into.
+
+ Thrown when the destination is shorter than the source array.
+
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Creates a new span over the portion of the target array.
+
+
+
+
+ Returns a value indicating whether the specified occurs within the .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Determines whether this and the specified span have the same characters
+ when compared using the specified option.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Compares the specified and using the specified ,
+ and returns an integer that indicates their relative position in the sort order.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Reports the zero-based index of the first occurrence of the specified in the current .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Determines whether the end of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the end of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Determines whether the beginning of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the beginning of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ Returns default when is null.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ Returns default when is null.
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+
+ Represents a contiguous region of memory, similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+ Creates a new memory over the existing object, start, and length. No validation is performed.
+ The target object.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the read-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the readonly-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+ Determines whether the specified object is equal to the current object.
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+ Returns the hash code for this
+
+
+ Gets the state of the memory as individual fields.
+ The offset.
+ The count.
+ The object.
+
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the read-only span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns a 0-length read-only span whose base is the null pointer.
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new read-only span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new read-only span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the read-only span.
+ The number of items in the read-only span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new read-only span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns the specified element of the read-only span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this read-only span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+
+
+ Get an array segment from the underlying memory.
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Gets an from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ A indicating if it was successful.
+
+
+
+ Gets an and , from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ The offset from the start of the that the represents.
+ The length of the that the represents.
+ A indicating if it was successful.
+
+
+
+ Creates an view of the given to allow
+ the to be used in existing APIs that take an .
+
+ The element type of the .
+ The ReadOnlyMemory to view as an
+ An view of the given
+
+
+ Attempts to get the underlying from a .
+ The memory that may be wrapping a object.
+ The string.
+ The starting location in .
+ The number of items in .
+
+
+
+
+ Reads a structure of type T out of a read-only span of bytes.
+
+
+
+
+ Reads a structure of type T out of a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Creates a new memory over the portion of the pre-pinned target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The pre-pinned target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ This method should only be called on an array that is already pinned and
+ that array should not be unpinned while the returned Memory is still in use.
+ Calling this method on an unpinned array could result in memory corruption.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Casts a Span of one primitive type to Span of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+ Creates a from a .
+ The .
+ A representing the same memory as the , but writable.
+
+ must be used with extreme caution. is used
+ to represent immutable data and other memory that is not meant to be written to; instances created
+ by should not be written to. The method exists to enable variables typed
+ as but only used for reading to store a .
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Casts a Span of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Provides a collection of methods for interoperating with
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get an array segment from the underlying .
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Represents position in non-contiguous set of memory.
+ Properties of this type should not be interpreted by anything but the type that created it.
+
+
+
+
+ Creates new
+
+
+
+
+ Returns object part of this
+
+
+
+
+ Returns integer part of this
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the span.
+ The number of items in the span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns a reference to specified element of the Span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Clears the contents of this span.
+
+
+
+
+ Fills the contents of this span with the given value.
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Implements the copy functionality used by Span and ReadOnlySpan.
+
+ NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation
+ is only used by portable span. The code must live in code that only compiles
+ for portable span which means either each individual span implementation
+ of this shared code file. Other shared SpanHelper.X.cs files are compiled
+ for both portable and fast span implementations.
+
+
+
+
+ Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits.
+
+ Assumptions:
+ Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span.
+
+ If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space),
+ the behavior is undefined.
+
+
+
+
+
+ Determine if a type is eligible for storage in unmanaged memory.
+ Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}()
+
+
+
+ Equals() on Span and ReadOnlySpan is not supported. Use operator== instead.
+
+
+ GetHashCode() on Span and ReadOnlySpan is not supported.
+
+
+ Cannot use type '{0}'. Only value types without pointers or references are supported.
+
+
+ Destination is too short.
+
+
+ Memory<T> has been disposed.
+
+
+ Release all references before disposing this instance.
+
+
+ Format specifier was invalid.
+
+
+ The 'G' format combined with a precision is not supported.
+
+
+ Characters following the format symbol must be a number of {0} or less.
+
+
+ Precision cannot be larger than {0}.
+
+
+ Overlapping spans have mismatching alignment.
+
+
+ End position was not reached during enumeration.
+
+
+ Unexpected segment type.
+
+
+
diff --git a/hMarkdown/bin/Debug/System.Numerics.Vectors.dll b/hMarkdown/bin/Debug/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..95a6d99
Binary files /dev/null and b/hMarkdown/bin/Debug/System.Numerics.Vectors.dll differ
diff --git a/hMarkdown/bin/Debug/System.Numerics.Vectors.xml b/hMarkdown/bin/Debug/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..2c6356e
--- /dev/null
+++ b/hMarkdown/bin/Debug/System.Numerics.Vectors.xml
@@ -0,0 +1,3451 @@
+
+
+
+ System.Numerics.Vectors
+
+
+
+
+ A structure encapsulating a 3x2 matrix.
+
+
+
+
+ The first element of the first row
+
+
+
+
+ The second element of the first row
+
+
+
+
+ The first element of the second row
+
+
+
+
+ The second element of the second row
+
+
+
+
+ The first element of the third row
+
+
+
+
+ The second element of the third row
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix3x2 from the given components.
+
+
+
+
+ Creates a translation matrix from the given vector.
+
+ The translation position.
+ A translation matrix.
+
+
+
+ Creates a translation matrix from the given X and Y components.
+
+ The X position.
+ The Y position.
+ A translation matrix.
+
+
+
+ Creates a scale matrix from the given X and Y components.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that is offset by a given center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ The center point.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale.
+
+ The scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale with an offset from the given center point.
+
+ The scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale.
+
+ The uniform scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale with an offset from the given center.
+
+ The uniform scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ A skew matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians and a center point.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ A skew matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians.
+
+ The amount of rotation, in radians.
+ A rotation matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians and a center point.
+
+ The amount of rotation, in radians.
+ The center point.
+ A rotation matrix.
+
+
+
+ Calculates the determinant for this matrix.
+ The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1).
+
+ The determinant.
+
+
+
+ Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter.
+
+ The source matrix.
+ The output matrix.
+ True if the operation succeeded, False otherwise.
+
+
+
+ Linearly interpolates from matrix1 to matrix2, based on the third parameter.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Returns a boolean indicating whether the given matrices are equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given matrices are not equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the matrix is equal to the other given matrix.
+
+ The other matrix to test equality against.
+ True if this matrix is equal to other; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 4x4 matrix.
+
+
+
+
+ Value at row 1, column 1 of the matrix.
+
+
+
+
+ Value at row 1, column 2 of the matrix.
+
+
+
+
+ Value at row 1, column 3 of the matrix.
+
+
+
+
+ Value at row 1, column 4 of the matrix.
+
+
+
+
+ Value at row 2, column 1 of the matrix.
+
+
+
+
+ Value at row 2, column 2 of the matrix.
+
+
+
+
+ Value at row 2, column 3 of the matrix.
+
+
+
+
+ Value at row 2, column 4 of the matrix.
+
+
+
+
+ Value at row 3, column 1 of the matrix.
+
+
+
+
+ Value at row 3, column 2 of the matrix.
+
+
+
+
+ Value at row 3, column 3 of the matrix.
+
+
+
+
+ Value at row 3, column 4 of the matrix.
+
+
+
+
+ Value at row 4, column 1 of the matrix.
+
+
+
+
+ Value at row 4, column 2 of the matrix.
+
+
+
+
+ Value at row 4, column 3 of the matrix.
+
+
+
+
+ Value at row 4, column 4 of the matrix.
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix4x4 from the given components.
+
+
+
+
+ Constructs a Matrix4x4 from the given Matrix3x2.
+
+ The source Matrix3x2.
+
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard matrix
+
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ Axis to rotate the billboard around.
+ Forward vector of the camera.
+ Forward vector of the object.
+ The created billboard matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate on the X-axis.
+ The amount to translate on the Y-axis.
+ The amount to translate on the Z-axis.
+ The translation matrix.
+
+
+
+ Creates a scaling matrix.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix.
+
+ The vector containing the amount to scale by on each axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ The vector containing the amount to scale by on each axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis.
+
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+
+ The axis to rotate around.
+ The angle to rotate around the given axis, in radians.
+ The rotation matrix.
+
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+
+ Field of view in the y direction, in radians.
+ Aspect ratio, defined as view space width divided by height.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+
+ Width of the view volume at the near view plane.
+ Height of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a customized, perspective projection matrix.
+
+ Minimum x-value of the view volume at the near view plane.
+ Maximum x-value of the view volume at the near view plane.
+ Minimum y-value of the view volume at the near view plane.
+ Maximum y-value of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to of the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+
+ Width of the view volume.
+ Height of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Builds a customized, orthographic projection matrix.
+
+ Minimum X-value of the view volume.
+ Maximum X-value of the view volume.
+ Minimum Y-value of the view volume.
+ Maximum Y-value of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Creates a view matrix.
+
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+
+ Creates a world matrix with the specified parameters.
+
+ The position of the object; used in translation operations.
+ Forward direction of the object.
+ Upward direction of the object; usually [0, 1, 0].
+ The world matrix.
+
+
+
+ Creates a rotation matrix from the given Quaternion rotation value.
+
+ The source Quaternion.
+ The rotation matrix.
+
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+
+ Angle of rotation, in radians, around the Y-axis.
+ Angle of rotation, in radians, around the X-axis.
+ Angle of rotation, in radians, around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
+
+ The direction from which the light that will cast the shadow is coming.
+ The Plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a Matrix that reflects the coordinate system about a specified Plane.
+
+ The Plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+
+ Calculates the determinant of the matrix.
+
+ The determinant of the matrix.
+
+
+
+ Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix.
+
+ The source matrix to invert.
+ If successful, contains the inverted matrix.
+ True if the source matrix could be inverted; False otherwise.
+
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix.
+ If successful, the out parameters will contained the extracted values.
+
+ The source matrix.
+ The scaling component of the transformation matrix.
+ The rotation component of the transformation matrix.
+ The translation component of the transformation matrix
+ True if the source matrix was successfully decomposed; False otherwise.
+
+
+
+ Transforms the given matrix by applying the given Quaternion rotation.
+
+ The source matrix to transform.
+ The rotation to apply.
+ The transformed matrix.
+
+
+
+ Transposes the rows and columns of a matrix.
+
+ The source matrix.
+ The transposed matrix.
+
+
+
+ Linearly interpolates between the corresponding values of two matrices.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weight of the second source matrix.
+ The interpolated matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a boolean indicating whether the given two matrices are equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given two matrices are not equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether this matrix instance is equal to the other given matrix.
+
+ The matrix to compare this instance to.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 3D Plane
+
+
+
+
+ The normal vector of the Plane.
+
+
+
+
+ The distance of the Plane along its normal from the origin.
+
+
+
+
+ Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+
+ The X-component of the normal.
+ The Y-component of the normal.
+ The Z-component of the normal.
+ The distance of the Plane along its normal from the origin.
+
+
+
+ Constructs a Plane from the given normal and distance along the normal from the origin.
+
+ The Plane's normal vector.
+ The Plane's distance from the origin along its normal vector.
+
+
+
+ Constructs a Plane from the given Vector4.
+
+ A vector whose first 3 elements describe the normal vector,
+ and whose W component defines the distance along that normal from the origin.
+
+
+
+ Creates a Plane that contains the three given points.
+
+ The first point defining the Plane.
+ The second point defining the Plane.
+ The third point defining the Plane.
+ The Plane containing the three points.
+
+
+
+ Creates a new Plane whose normal vector is the source Plane's normal vector normalized.
+
+ The source Plane.
+ The normalized Plane.
+
+
+
+ Transforms a normalized Plane by a Matrix.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The transformation matrix to apply to the Plane.
+ The transformed Plane.
+
+
+
+ Transforms a normalized Plane by a Quaternion rotation.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The Quaternion rotation to apply to the Plane.
+ A new Plane that results from applying the rotation.
+
+
+
+ Calculates the dot product of a Plane and Vector4.
+
+ The Plane.
+ The Vector4.
+ The dot product.
+
+
+
+ Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane.
+
+ The plane.
+ The Vector3.
+ The resulting value.
+
+
+
+ Returns the dot product of a specified Vector3 and the Normal vector of this Plane.
+
+ The plane.
+ The Vector3.
+ The resulting dot product.
+
+
+
+ Returns a boolean indicating whether the two given Planes are equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Planes are not equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Plane is equal to this Plane instance.
+
+ The Plane to compare this instance to.
+ True if the other Plane is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Plane instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Plane; False otherwise.
+
+
+
+ Returns a String representing this Plane instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a four-dimensional vector (x,y,z,w),
+ which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
+
+
+
+
+ Specifies the X-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Y-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Z-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the rotation component of the Quaternion.
+
+
+
+
+ Returns a Quaternion representing no rotation.
+
+
+
+
+ Returns whether the Quaternion is the identity Quaternion.
+
+
+
+
+ Constructs a Quaternion from the given components.
+
+ The X component of the Quaternion.
+ The Y component of the Quaternion.
+ The Z component of the Quaternion.
+ The W component of the Quaternion.
+
+
+
+ Constructs a Quaternion from the given vector and rotation parts.
+
+ The vector part of the Quaternion.
+ The rotation part of the Quaternion.
+
+
+
+ Calculates the length of the Quaternion.
+
+ The computed length of the Quaternion.
+
+
+
+ Calculates the length squared of the Quaternion. This operation is cheaper than Length().
+
+ The length squared of the Quaternion.
+
+
+
+ Divides each component of the Quaternion by the length of the Quaternion.
+
+ The source Quaternion.
+ The normalized Quaternion.
+
+
+
+ Creates the conjugate of a specified Quaternion.
+
+ The Quaternion of which to return the conjugate.
+ A new Quaternion that is the conjugate of the specified one.
+
+
+
+ Returns the inverse of a Quaternion.
+
+ The source Quaternion.
+ The inverted Quaternion.
+
+
+
+ Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector.
+
+ The unit vector to rotate around.
+ This vector must be normalized before calling this function or the resulting Quaternion will be incorrect.
+ The angle, in radians, to rotate around the vector.
+ The created Quaternion.
+
+
+
+ Creates a new Quaternion from the given yaw, pitch, and roll, in radians.
+
+ The yaw angle, in radians, around the Y-axis.
+ The pitch angle, in radians, around the X-axis.
+ The roll angle, in radians, around the Z-axis.
+
+
+
+
+ Creates a Quaternion from the given rotation matrix.
+
+ The rotation matrix.
+ The created Quaternion.
+
+
+
+ Calculates the dot product of two Quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The dot product of the Quaternions.
+
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Linearly interpolates between two quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.
+
+ The first Quaternion rotation in the series.
+ The second Quaternion rotation in the series.
+ A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are not equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance.
+
+ The Quaternion to compare this instance to.
+ True if the other Quaternion is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Quaternion instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Quaternion; False otherwise.
+
+
+
+ Returns a String representing this Quaternion instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure describing the layout of an SSE2-sized register.
+ Contains overlapping fields representing the set of valid numeric types.
+ Allows the generic Vector'T struct to contain an explicit field layout.
+
+
+
+
+ A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent.
+ This struct only supports numerical types. This type is intended to be used as a building block for vectorizing
+ large algorithms. This type is immutable, individual elements cannot be modified.
+
+
+
+
+ Returns the number of elements stored in the vector. This value is hardware dependent.
+
+
+
+
+ Returns a vector containing all zeroes.
+
+
+
+
+ Returns a vector containing all ones.
+
+
+
+
+ Constructs a vector whose components are all value
+
+
+
+
+ Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count.
+
+
+
+
+ Constructs a vector from the given array, starting from the given index.
+ The array must contain at least Vector'T.Count from the given index.
+
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ If the destination array is null
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ The index to start copying to
+ If the destination array is null
+ If index is greater than end of the array or index is less than zero
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Returns the element at the given index.
+
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this vector instance.
+
+ The Object to compare against.
+ True if the Object is equal to this vector; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given vector is equal to this vector instance.
+
+ The vector to compare this instance to.
+ True if the other vector is equal to this instance; False otherwise.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a String representing this vector.
+
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if left and right are not equal; False otherwise.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
+
+
+
+
+ Widens a Vector{Byte} into two Vector{UInt16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt16} into two Vector{UInt32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt32} into two Vector{UInt64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{SByte} into two Vector{Int16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int16} into two Vector{Int32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int32} into two Vector{Int64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Single} into two Vector{Double}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Narrows two Vector{UInt16}'s into one Vector{Byte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Byte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt32}'s into one Vector{UInt16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt64}'s into one Vector{UInt32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int16}'s into one Vector{SByte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{SByte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int32}'s into one Vector{Int16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int64}'s into one Vector{Int32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Double}'s into one Vector{Single}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Single} containing elements narrowed from the source vectors.
+
+
+
+
+ Converts a Vector{Int32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Int64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{Int32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{UInt32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{Int64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{UInt64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any element pairs are equal; False if no element pairs are equal.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right.
+ elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support.
+
+
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimum vector.
+
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximum vector.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first source vector.
+ The second source vector.
+ The dot product.
+
+
+
+ Returns a new vector whose elements are the square roots of the given vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Creates a new vector whose values are the sum of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Creates a new vector whose values are the difference between each pairs of elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Creates a new vector whose values are the product of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The source vector.
+ The scalar factor.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The scalar factor.
+ The source vector.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements
+ by the corresponding elements in the second vector.
+
+ The first source vector.
+ The second source vector.
+ The divided vector.
+
+
+
+ Returns a new vector whose elements are the given vector's elements negated.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ A structure encapsulating two single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0).
+
+
+
+
+ Returns the vector (1,1).
+
+
+
+
+ Returns the vector (1,0).
+
+
+
+
+ Returns the vector (0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector2 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector2; False otherwise.
+
+
+
+ Returns a String representing this Vector2 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+ The destination array.
+
+
+
+ Copies the contents of the vector into the given array, starting from the given index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array
+ or if there are not enough elements to copy.
+
+
+
+ Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance.
+
+ The Vector2 to compare this instance to.
+ True if the other Vector2 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors
+
+ The first source vector
+ The second source vector
+ The maximized vector
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating three single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0).
+
+
+
+
+ Returns the vector (1,1,1).
+
+
+
+
+ Returns the vector (1,0,0).
+
+
+
+
+ Returns the vector (0,1,0).
+
+
+
+
+ Returns the vector (0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector3 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector3; False otherwise.
+
+
+
+ Returns a String representing this Vector3 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a Vector3 from the given Vector2 and a third value.
+
+ The Vector to extract X and Y components from.
+ The Z component.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+ The Z component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance.
+
+ The Vector3 to compare this instance to.
+ True if the other Vector3 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating four single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0,0).
+
+
+
+
+ Returns the vector (1,1,1,1).
+
+
+
+
+ Returns the vector (1,0,0,0).
+
+
+
+
+ Returns the vector (0,1,0,0).
+
+
+
+
+ Returns the vector (0,0,1,0).
+
+
+
+
+ Returns the vector (0,0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector4 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector4; False otherwise.
+
+
+
+ Returns a String representing this Vector4 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector. This operation is cheaper than Length().
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared.
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ The W component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ W component.
+ X component.
+ Y component.
+ Z component.
+
+
+
+ Constructs a Vector4 from the given Vector2 and a Z and W component.
+
+ The vector to use as the X and Y components.
+ The Z component.
+ The W component.
+
+
+
+ Constructs a Vector4 from the given Vector3 and a W component.
+
+ The vector to use as the X, Y, and Z components.
+ The W component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance.
+
+ The Vector4 to compare this instance to.
+ True if the other Vector4 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+ Index was out of bounds:
+
+
+ Number of elements in source vector is greater than the destination array
+
+
+ The method was called with a null array argument.
+
+
+ Specified type is not supported
+
+
+ At least {0} element(s) are expected in the parameter "{1}".
+
+
+
diff --git a/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..7795684
Binary files /dev/null and b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..7acab80
--- /dev/null
+++ b/hMarkdown/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,353 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A reference to the value to copy.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A pointer to the value to copy.
+
+
+
+ Returns a pointer to the given by-ref parameter.
+
+ The type of object.
+ The object whose pointer is obtained.
+ A pointer to the given value.
+
+
+
+ Returns the size of an object of the given type parameter.
+
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+
+ Casts the given object to the specified type, performs no dynamic type checking.
+
+ The type which the object will be cast to.
+ The object to cast.
+ The original object, casted to the given type.
+
+
+
+ Reinterprets the given location as a reference to a value of type .
+
+ The type of the interpreted location.
+ The location of the value to reference.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given read-only reference as a reference.
+
+ The type of reference.
+ The read-only reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given reference as a reference to a value of type .
+
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ The reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Returns a reference to the value type contained with the specified box object.
+
+ The type of the value type contained within the box.
+ The boxed value type.
+ A reference to a value of type in the box object.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given pointer.
+
+ The type of reference.
+ The pointer to add the offset to.
+ The offset to add.
+ A new pointer that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Determines the byte offset from origin to target from the given references.
+
+ The type of reference.
+ The reference to origin.
+ The reference to target.
+ Byte offset from origin to target i.e. - .
+
+
+
+ Determines whether the specified references point to the same location.
+
+ The first reference to compare.
+ The second reference to compare.
+ true if and point to the same location; otherwise false.
+
+
+
+ Determines whether the memory address referenced by is greater than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is greater than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Determines whether the memory address referenced by is less than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is less than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Returns if a given reference to a value of type is a null reference.
+
+ The reference to check.
+ This check is conceptually similar to "(void*)(&source) == nullptr".
+
+
+
+ Returns a reference to a value of type that is a null reference.
+
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
diff --git a/hMarkdown/bin/Debug/hMarkdown.exe b/hMarkdown/bin/Debug/hMarkdown.exe
new file mode 100644
index 0000000..cd76b68
Binary files /dev/null and b/hMarkdown/bin/Debug/hMarkdown.exe differ
diff --git a/hMarkdown/bin/Debug/hMarkdown.exe.config b/hMarkdown/bin/Debug/hMarkdown.exe.config
new file mode 100644
index 0000000..3d9ac87
--- /dev/null
+++ b/hMarkdown/bin/Debug/hMarkdown.exe.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/bin/Release/Markdig.xml b/hMarkdown/bin/Release/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/hMarkdown/bin/Release/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/hMarkdown/bin/Release/System.Buffers.xml b/hMarkdown/bin/Release/System.Buffers.xml
new file mode 100644
index 0000000..fe1f651
--- /dev/null
+++ b/hMarkdown/bin/Release/System.Buffers.xml
@@ -0,0 +1,173 @@
+
+
+
+ System.Buffers
+
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+
+
+
+ Renting and returning buffers with an can increase performance
+ in situations where arrays are created and destroyed frequently, resulting in significant
+ memory pressure on the garbage collector.
+
+
+ This class is thread-safe. All members may be used by multiple threads concurrently.
+
+
+
+
+ The lazily-initialized shared pool instance.
+
+
+
+ Retrieves a shared instance.
+
+
+ The shared pool provides a default implementation of
+ that's intended for general applicability. It maintains arrays of multiple sizes, and
+ may hand back a larger array than was actually requested, but will never hand back a smaller
+ array than was requested. Renting a buffer from it with will result in an
+ existing buffer being taken from the pool if an appropriate buffer is available or in a new
+ buffer being allocated if one is not available.
+
+
+
+ Ensures that has been initialized to a pool and returns it.
+
+
+
+ Creates a new instance using default configuration options.
+
+ A new instance.
+
+
+
+ Creates a new instance using custom configuration options.
+
+ The maximum length of array instances 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 with the specified configuration options.
+
+ The created pool will group arrays into buckets, with no more than
+ in each bucket and with those arrays not exceeding in length.
+
+
+
+
+ Retrieves a buffer that is at least the requested length.
+
+ The minimum length of the array needed.
+
+ An that is at least in length.
+
+
+ This buffer is loaned to the caller and should be returned to the same pool via
+ so that it may be reused in subsequent usage of .
+ It is not a fatal error to not return a rented buffer, but failure to do so may lead to
+ decreased application performance, as the pool may need to create a new buffer to replace
+ the one lost.
+
+
+
+
+ Returns to the pool an array that was previously obtained via on the same
+ instance.
+
+
+ The buffer previously obtained from to return to the pool.
+
+
+ If true and if the pool will store the buffer to enable subsequent reuse,
+ will clear of its contents so that a subsequent consumer via
+ will not see the previous consumer's content. If false or if the pool will release the buffer,
+ the array's contents are left unchanged.
+
+
+ Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
+ and must not use it. The reference returned from a given call to must only be
+ returned via once. The default
+ may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
+ if it's determined that the pool already has enough buffers stored.
+
+
+
+ The reason for a BufferAllocated event.
+
+
+ The pool is allocating a buffer to be pooled in a bucket.
+
+
+ The requested buffer size was too large to be pooled.
+
+
+ The pool has already allocated for pooling as many buffers of a particular size as it's allowed.
+
+
+
+ Event for when a buffer is rented. This is invoked once for every successful call to Rent,
+ regardless of whether a buffer is allocated or a buffer is taken from the pool. In a
+ perfect situation where all rented buffers are returned, we expect to see the number
+ of BufferRented events exactly match the number of BuferReturned events, with the number
+ of BufferAllocated events being less than or equal to those numbers (ideally significantly
+ less than).
+
+
+
+
+ Event for when a buffer is allocated by the pool. In an ideal situation, the number
+ of BufferAllocated events is significantly smaller than the number of BufferRented and
+ BufferReturned events.
+
+
+
+
+ Event raised when a buffer is returned to the pool. This event is raised regardless of whether
+ the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned
+ events exactly matches the number of BufferRented events.
+
+
+
+ The default maximum length of each array in the pool (2^20).
+
+
+ The default maximum number of arrays per bucket that are available for rent.
+
+
+ Lazily-allocated empty array used when arrays of length 0 are requested.
+
+
+ Gets an ID for the pool to use with events.
+
+
+ Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd.
+
+
+
+ Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length.
+
+
+
+ Gets an ID for the bucket to use with events.
+
+
+ Takes an array from the bucket. If the bucket is empty, returns null.
+
+
+
+ Attempts to return the buffer to the bucket. If successful, the buffer will be stored
+ in the bucket and true will be returned; otherwise, the buffer won't be stored, and false
+ will be returned.
+
+
+
+ The buffer is not associated with this pool and may not be returned to it.
+
+
+
diff --git a/hMarkdown/bin/Release/System.Memory.xml b/hMarkdown/bin/Release/System.Memory.xml
new file mode 100644
index 0000000..ff0619c
--- /dev/null
+++ b/hMarkdown/bin/Release/System.Memory.xml
@@ -0,0 +1,3489 @@
+
+
+
+ System.Memory
+
+
+
+
+ Reads bytes as primitives with specific endianness
+
+
+ For native formats, MemoryExtensions.Read{T}; should be used.
+ Use these helpers when you need to read specific endinanness.
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip sbyte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip byte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Extension methods for
+
+
+
+
+ Returns position of first occurrence of item in the
+
+
+
+
+ Copy the to the specified .
+
+ The source .
+ The destination .
+
+
+
+ Converts the to an array
+
+
+
+
+ Writes contents of to
+
+
+
+
+ Represents a sink
+
+
+
+
+ Notifies that amount of data was written to /
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Owner of Memory that is responsible for disposing the underlying memory appropriately.
+
+
+
+
+ Returns a Memory.
+
+
+
+
+ Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them.
+
+
+
+
+ Call this method to indicate that the IPinnable object can not be moved by the garbage collector.
+ The address of the pinned object can be taken.
+ The offset to the element within the memory at which the returned points to.
+
+
+
+
+ Call this method to indicate that the IPinnable object no longer needs to be pinned.
+ The garbage collector is free to move the object now.
+
+
+
+
+ A handle for the memory.
+
+
+
+
+ Creates a new memory handle for the memory.
+
+ pointer to memory
+ reference to manually managed object, or default if there is no memory manager
+ handle used to pin array buffers
+
+
+
+ Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change.
+
+
+
+
+ Frees the pinned handle and releases IPinnable.
+
+
+
+
+ Manager of that provides the implementation.
+
+
+
+
+ Returns a .
+
+
+
+
+ Returns a span wrapping the underlying memory.
+
+
+
+
+ Returns a handle to the memory that has been pinned and hence its address can be taken.
+
+ The offset to the element within the memory at which the returned points to. (default = 0)
+
+
+
+ Lets the garbage collector know that the object is free to be moved now.
+
+
+
+
+ Returns a for the current .
+
+ The element count in the memory, starting at offset 0.
+
+
+
+ Returns a for the current .
+
+ The offset to the element which the returned memory starts at.
+ The element count in the memory, starting at element offset .
+
+
+
+ Returns an array segment.
+ Returns the default array segment if not overriden.
+
+
+
+
+ Implements IDisposable.
+
+
+
+
+ Clean up of any leftover managed and unmanaged resources.
+
+
+
+
+ Represents a pool of memory blocks.
+
+
+
+
+ Returns a singleton instance of a MemoryPool based on arrays.
+
+
+
+
+ Returns a memory block capable of holding at least elements of T.
+
+ If -1 is passed, this is set to a default value for the pool.
+
+
+
+ Returns the maximum buffer size supported by this pool.
+
+
+
+
+ Constructs a new instance of a memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+
+ This enum defines the various potential status that can be returned from Span-based operations
+ that support processing of input contained in multiple discontiguous buffers.
+
+
+
+
+ The entire input buffer has been processed and the operation is complete.
+
+
+
+
+ The input is partially processed, up to what could fit into the destination buffer.
+ The caller can enlarge the destination buffer, slice the buffers appropriately, and retry.
+
+
+
+
+ The input is partially processed, up to the last valid chunk of the input that could be consumed.
+ The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry.
+
+
+
+
+ The input contained invalid bytes which could not be processed. If the input is partially processed,
+ the destination contains the partial result. This guarantees that no additional data appended to the input
+ will make the invalid sequence valid.
+
+
+
+
+ Represents a sequence that can read a sequential series of .
+
+
+
+
+ Returns empty
+
+
+
+
+ Length of the .
+
+
+
+
+ Determines if the is empty.
+
+
+
+
+ Determines if the contains a single segment.
+
+
+
+
+ Gets from the first segment.
+
+
+
+
+ A position to the start of the .
+
+
+
+
+ A position to the end of the
+
+
+
+
+ Creates an instance of from linked memory list represented by start and end segments
+ and corresponding indexes in them.
+
+
+
+
+ Creates an instance of from the .
+
+
+
+
+ Creates an instance of from the , start and index.
+
+
+
+
+ Creates an instance of from the .
+ Consumer is expected to manage lifetime of memory until is not used anymore.
+
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at ', with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The starting (inclusive) at which to begin this slice.
+ The ending (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The starting (inclusive) at which to begin this slice.
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The start index at which to begin this slice.
+
+
+
+
+
+
+ Returns an enumerator over the
+
+
+
+
+ Returns a new at an from the start of the sequence.
+
+
+
+
+ Returns a new at an from the
+
+
+
+
+ Tries to retrieve next segment after and return its contents in .
+ Returns false if end of was reached otherwise true.
+ Sets to the beginning of next segment if is set to true.
+
+
+
+
+ An enumerator over the
+
+
+
+ Initialize the enumerator.
+ The to enumerate.
+
+
+
+ The current
+
+
+
+
+ Moves to the next in the
+
+
+
+
+
+ Represents a linked list of nodes.
+
+
+
+
+ The value for current node.
+
+
+
+
+ The next node.
+
+
+
+
+ The sum of node length before current.
+
+
+
+
+ Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X')
+ and an optional precision ranging from 0..99, or the special value NoPrecision.
+
+
+
+
+ Precision values for format that don't use a precision, or for when the precision is to be unspecified.
+
+
+
+
+ The maximum valid precision value.
+
+
+
+
+ The character component of the format.
+
+
+
+
+ The precision component of the format. Ranges from 0..9 or the special value NoPrecision.
+
+
+
+
+ true if Precision is a value other than NoPrecision
+
+
+
+
+ true if the StandardFormat == default(StandardFormat)
+
+
+
+
+ Create a StandardFormat.
+
+ A type-specific formatting character such as 'G', 'D' or 'X'
+ An optional precision ranging from 0..9 or the special value NoPrecision (the default)
+
+
+
+ Converts a character to a StandardFormat using the NoPrecision precision.
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Compute a hash code.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns the format in classic .NET format.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns false if both the Symbol and Precision are equal.
+
+
+
+
+ Convert between binary data and UTF-8 encoded text that is represented in base 64.
+
+
+
+
+ Decode the span of UTF-8 encoded text represented as base 64 into binary data.
+ If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4.
+
+ The input span which contains UTF-8 encoded text in base 64 that needs to be decoded.
+ The output span which contains the result of the operation, i.e. the decoded binary data.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input
+ - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0.
+
+
+
+
+ Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data.
+ The decoded binary output is smaller than the text data contained in the input (the operation deflates the data).
+ If the input is not a multiple of 4, it will not decode any.
+
+ The input span which contains the base 64 text data that needs to be decoded.
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4).
+ It does not return DestinationTooSmall since that is not possible for base 64 decoding.
+ It does not return NeedMoreData since this method tramples the data in the buffer and
+ hence can only be called once with all the data in the buffer.
+
+
+
+
+ Encode the span of binary data into UTF-8 encoded text represented as base 64.
+
+ The input span which contains binary data that needs to be encoded.
+ The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input
+ - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3).
+
+
+
+
+ Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64.
+ The encoded text output is larger than the binary data contained in the input (the operation inflates the data).
+
+ The input span which contains binary data that needs to be encoded.
+ It needs to be large enough to fit the result of the operation.
+ The amount of binary data contained within the buffer that needs to be encoded
+ (and needs to be smaller than the buffer length).
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire buffer
+ - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input
+ It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer.
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the symbol contained within the standard format. If the standard format
+ has not been initialized, returns the provided fallback symbol.
+
+
+
+
+ Fills a buffer with the ASCII character '0' (0x30).
+
+
+
+
+ Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+
+
+ Formats a Boolean as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTimeOffset as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTime as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Decimal as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Double as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Single as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Guid as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Used to provide access to the individual bytes of a GUID.
+
+
+
+
+ Formats a Byte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an SByte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Unt16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a TimeSpan as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Methods to parse common data types to Utf8 strings.
+
+
+
+
+ Parses a Boolean at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTime at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTimeOffset at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset/Local time conversion factory.
+
+
+
+
+ Overflow-safe DateTime factory.
+
+
+
+
+ Parses a Decimal at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Single at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Double at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Guid at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a SByte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Byte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a TimeSpan at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan
+ parser rejects the string (even if the extra digits are all zeroes.)
+
+
+
+
+ Overflow-safe TryCreateTimeSpan
+
+
+
+
+ Memory represents a contiguous region of arbitrary memory similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 0 index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The number of items in the memory.
+
+ Thrown when the specified is negative.
+
+ For internal infrastructure only
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+ Thrown when the specified or is negative.
+
+ For internal infrastructure only
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ Determines whether the specified object is equal to the current object.
+ Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length.
+
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Serves as the default hash function.
+
+
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+
+
+ Removes all leading and trailing white-space characters from the span.
+
+
+
+
+ Removes all leading white-space characters from the span.
+
+
+
+
+ Removes all trailing white-space characters from the span.
+
+
+
+
+ Removes all leading and trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading and trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all leading occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Indicates whether the specified span contains only white-space characters.
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Reverses the sequence of the elements in the entire span.
+
+
+
+
+ Creates a new span over the target array.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the portion of the target array segment.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=array.Length).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory over the portion of the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Copies the contents of the array into the span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source array.
+
+
+
+
+
+ Copies the contents of the array into the memory. If the source
+ and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The memory to copy items into.
+
+ Thrown when the destination is shorter than the source array.
+
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Creates a new span over the portion of the target array.
+
+
+
+
+ Returns a value indicating whether the specified occurs within the .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Determines whether this and the specified span have the same characters
+ when compared using the specified option.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Compares the specified and using the specified ,
+ and returns an integer that indicates their relative position in the sort order.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Reports the zero-based index of the first occurrence of the specified in the current .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Determines whether the end of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the end of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Determines whether the beginning of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the beginning of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ Returns default when is null.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ Returns default when is null.
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+
+ Represents a contiguous region of memory, similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+ Creates a new memory over the existing object, start, and length. No validation is performed.
+ The target object.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the read-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the readonly-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+ Determines whether the specified object is equal to the current object.
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+ Returns the hash code for this
+
+
+ Gets the state of the memory as individual fields.
+ The offset.
+ The count.
+ The object.
+
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the read-only span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns a 0-length read-only span whose base is the null pointer.
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new read-only span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new read-only span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the read-only span.
+ The number of items in the read-only span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new read-only span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns the specified element of the read-only span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this read-only span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+
+
+ Get an array segment from the underlying memory.
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Gets an from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ A indicating if it was successful.
+
+
+
+ Gets an and , from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ The offset from the start of the that the represents.
+ The length of the that the represents.
+ A indicating if it was successful.
+
+
+
+ Creates an view of the given to allow
+ the to be used in existing APIs that take an .
+
+ The element type of the .
+ The ReadOnlyMemory to view as an
+ An view of the given
+
+
+ Attempts to get the underlying from a .
+ The memory that may be wrapping a object.
+ The string.
+ The starting location in .
+ The number of items in .
+
+
+
+
+ Reads a structure of type T out of a read-only span of bytes.
+
+
+
+
+ Reads a structure of type T out of a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Creates a new memory over the portion of the pre-pinned target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The pre-pinned target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ This method should only be called on an array that is already pinned and
+ that array should not be unpinned while the returned Memory is still in use.
+ Calling this method on an unpinned array could result in memory corruption.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Casts a Span of one primitive type to Span of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+ Creates a from a .
+ The .
+ A representing the same memory as the , but writable.
+
+ must be used with extreme caution. is used
+ to represent immutable data and other memory that is not meant to be written to; instances created
+ by should not be written to. The method exists to enable variables typed
+ as but only used for reading to store a .
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Casts a Span of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Provides a collection of methods for interoperating with
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get an array segment from the underlying .
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Represents position in non-contiguous set of memory.
+ Properties of this type should not be interpreted by anything but the type that created it.
+
+
+
+
+ Creates new
+
+
+
+
+ Returns object part of this
+
+
+
+
+ Returns integer part of this
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the span.
+ The number of items in the span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns a reference to specified element of the Span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Clears the contents of this span.
+
+
+
+
+ Fills the contents of this span with the given value.
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Implements the copy functionality used by Span and ReadOnlySpan.
+
+ NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation
+ is only used by portable span. The code must live in code that only compiles
+ for portable span which means either each individual span implementation
+ of this shared code file. Other shared SpanHelper.X.cs files are compiled
+ for both portable and fast span implementations.
+
+
+
+
+ Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits.
+
+ Assumptions:
+ Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span.
+
+ If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space),
+ the behavior is undefined.
+
+
+
+
+
+ Determine if a type is eligible for storage in unmanaged memory.
+ Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}()
+
+
+
+ Equals() on Span and ReadOnlySpan is not supported. Use operator== instead.
+
+
+ GetHashCode() on Span and ReadOnlySpan is not supported.
+
+
+ Cannot use type '{0}'. Only value types without pointers or references are supported.
+
+
+ Destination is too short.
+
+
+ Memory<T> has been disposed.
+
+
+ Release all references before disposing this instance.
+
+
+ Format specifier was invalid.
+
+
+ The 'G' format combined with a precision is not supported.
+
+
+ Characters following the format symbol must be a number of {0} or less.
+
+
+ Precision cannot be larger than {0}.
+
+
+ Overlapping spans have mismatching alignment.
+
+
+ End position was not reached during enumeration.
+
+
+ Unexpected segment type.
+
+
+
diff --git a/hMarkdown/bin/Release/System.Numerics.Vectors.xml b/hMarkdown/bin/Release/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..2c6356e
--- /dev/null
+++ b/hMarkdown/bin/Release/System.Numerics.Vectors.xml
@@ -0,0 +1,3451 @@
+
+
+
+ System.Numerics.Vectors
+
+
+
+
+ A structure encapsulating a 3x2 matrix.
+
+
+
+
+ The first element of the first row
+
+
+
+
+ The second element of the first row
+
+
+
+
+ The first element of the second row
+
+
+
+
+ The second element of the second row
+
+
+
+
+ The first element of the third row
+
+
+
+
+ The second element of the third row
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix3x2 from the given components.
+
+
+
+
+ Creates a translation matrix from the given vector.
+
+ The translation position.
+ A translation matrix.
+
+
+
+ Creates a translation matrix from the given X and Y components.
+
+ The X position.
+ The Y position.
+ A translation matrix.
+
+
+
+ Creates a scale matrix from the given X and Y components.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that is offset by a given center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ The center point.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale.
+
+ The scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale with an offset from the given center point.
+
+ The scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale.
+
+ The uniform scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale with an offset from the given center.
+
+ The uniform scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ A skew matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians and a center point.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ A skew matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians.
+
+ The amount of rotation, in radians.
+ A rotation matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians and a center point.
+
+ The amount of rotation, in radians.
+ The center point.
+ A rotation matrix.
+
+
+
+ Calculates the determinant for this matrix.
+ The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1).
+
+ The determinant.
+
+
+
+ Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter.
+
+ The source matrix.
+ The output matrix.
+ True if the operation succeeded, False otherwise.
+
+
+
+ Linearly interpolates from matrix1 to matrix2, based on the third parameter.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Returns a boolean indicating whether the given matrices are equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given matrices are not equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the matrix is equal to the other given matrix.
+
+ The other matrix to test equality against.
+ True if this matrix is equal to other; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 4x4 matrix.
+
+
+
+
+ Value at row 1, column 1 of the matrix.
+
+
+
+
+ Value at row 1, column 2 of the matrix.
+
+
+
+
+ Value at row 1, column 3 of the matrix.
+
+
+
+
+ Value at row 1, column 4 of the matrix.
+
+
+
+
+ Value at row 2, column 1 of the matrix.
+
+
+
+
+ Value at row 2, column 2 of the matrix.
+
+
+
+
+ Value at row 2, column 3 of the matrix.
+
+
+
+
+ Value at row 2, column 4 of the matrix.
+
+
+
+
+ Value at row 3, column 1 of the matrix.
+
+
+
+
+ Value at row 3, column 2 of the matrix.
+
+
+
+
+ Value at row 3, column 3 of the matrix.
+
+
+
+
+ Value at row 3, column 4 of the matrix.
+
+
+
+
+ Value at row 4, column 1 of the matrix.
+
+
+
+
+ Value at row 4, column 2 of the matrix.
+
+
+
+
+ Value at row 4, column 3 of the matrix.
+
+
+
+
+ Value at row 4, column 4 of the matrix.
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix4x4 from the given components.
+
+
+
+
+ Constructs a Matrix4x4 from the given Matrix3x2.
+
+ The source Matrix3x2.
+
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard matrix
+
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ Axis to rotate the billboard around.
+ Forward vector of the camera.
+ Forward vector of the object.
+ The created billboard matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate on the X-axis.
+ The amount to translate on the Y-axis.
+ The amount to translate on the Z-axis.
+ The translation matrix.
+
+
+
+ Creates a scaling matrix.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix.
+
+ The vector containing the amount to scale by on each axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ The vector containing the amount to scale by on each axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis.
+
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+
+ The axis to rotate around.
+ The angle to rotate around the given axis, in radians.
+ The rotation matrix.
+
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+
+ Field of view in the y direction, in radians.
+ Aspect ratio, defined as view space width divided by height.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+
+ Width of the view volume at the near view plane.
+ Height of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a customized, perspective projection matrix.
+
+ Minimum x-value of the view volume at the near view plane.
+ Maximum x-value of the view volume at the near view plane.
+ Minimum y-value of the view volume at the near view plane.
+ Maximum y-value of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to of the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+
+ Width of the view volume.
+ Height of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Builds a customized, orthographic projection matrix.
+
+ Minimum X-value of the view volume.
+ Maximum X-value of the view volume.
+ Minimum Y-value of the view volume.
+ Maximum Y-value of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Creates a view matrix.
+
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+
+ Creates a world matrix with the specified parameters.
+
+ The position of the object; used in translation operations.
+ Forward direction of the object.
+ Upward direction of the object; usually [0, 1, 0].
+ The world matrix.
+
+
+
+ Creates a rotation matrix from the given Quaternion rotation value.
+
+ The source Quaternion.
+ The rotation matrix.
+
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+
+ Angle of rotation, in radians, around the Y-axis.
+ Angle of rotation, in radians, around the X-axis.
+ Angle of rotation, in radians, around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
+
+ The direction from which the light that will cast the shadow is coming.
+ The Plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a Matrix that reflects the coordinate system about a specified Plane.
+
+ The Plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+
+ Calculates the determinant of the matrix.
+
+ The determinant of the matrix.
+
+
+
+ Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix.
+
+ The source matrix to invert.
+ If successful, contains the inverted matrix.
+ True if the source matrix could be inverted; False otherwise.
+
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix.
+ If successful, the out parameters will contained the extracted values.
+
+ The source matrix.
+ The scaling component of the transformation matrix.
+ The rotation component of the transformation matrix.
+ The translation component of the transformation matrix
+ True if the source matrix was successfully decomposed; False otherwise.
+
+
+
+ Transforms the given matrix by applying the given Quaternion rotation.
+
+ The source matrix to transform.
+ The rotation to apply.
+ The transformed matrix.
+
+
+
+ Transposes the rows and columns of a matrix.
+
+ The source matrix.
+ The transposed matrix.
+
+
+
+ Linearly interpolates between the corresponding values of two matrices.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weight of the second source matrix.
+ The interpolated matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a boolean indicating whether the given two matrices are equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given two matrices are not equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether this matrix instance is equal to the other given matrix.
+
+ The matrix to compare this instance to.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 3D Plane
+
+
+
+
+ The normal vector of the Plane.
+
+
+
+
+ The distance of the Plane along its normal from the origin.
+
+
+
+
+ Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+
+ The X-component of the normal.
+ The Y-component of the normal.
+ The Z-component of the normal.
+ The distance of the Plane along its normal from the origin.
+
+
+
+ Constructs a Plane from the given normal and distance along the normal from the origin.
+
+ The Plane's normal vector.
+ The Plane's distance from the origin along its normal vector.
+
+
+
+ Constructs a Plane from the given Vector4.
+
+ A vector whose first 3 elements describe the normal vector,
+ and whose W component defines the distance along that normal from the origin.
+
+
+
+ Creates a Plane that contains the three given points.
+
+ The first point defining the Plane.
+ The second point defining the Plane.
+ The third point defining the Plane.
+ The Plane containing the three points.
+
+
+
+ Creates a new Plane whose normal vector is the source Plane's normal vector normalized.
+
+ The source Plane.
+ The normalized Plane.
+
+
+
+ Transforms a normalized Plane by a Matrix.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The transformation matrix to apply to the Plane.
+ The transformed Plane.
+
+
+
+ Transforms a normalized Plane by a Quaternion rotation.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The Quaternion rotation to apply to the Plane.
+ A new Plane that results from applying the rotation.
+
+
+
+ Calculates the dot product of a Plane and Vector4.
+
+ The Plane.
+ The Vector4.
+ The dot product.
+
+
+
+ Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane.
+
+ The plane.
+ The Vector3.
+ The resulting value.
+
+
+
+ Returns the dot product of a specified Vector3 and the Normal vector of this Plane.
+
+ The plane.
+ The Vector3.
+ The resulting dot product.
+
+
+
+ Returns a boolean indicating whether the two given Planes are equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Planes are not equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Plane is equal to this Plane instance.
+
+ The Plane to compare this instance to.
+ True if the other Plane is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Plane instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Plane; False otherwise.
+
+
+
+ Returns a String representing this Plane instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a four-dimensional vector (x,y,z,w),
+ which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
+
+
+
+
+ Specifies the X-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Y-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Z-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the rotation component of the Quaternion.
+
+
+
+
+ Returns a Quaternion representing no rotation.
+
+
+
+
+ Returns whether the Quaternion is the identity Quaternion.
+
+
+
+
+ Constructs a Quaternion from the given components.
+
+ The X component of the Quaternion.
+ The Y component of the Quaternion.
+ The Z component of the Quaternion.
+ The W component of the Quaternion.
+
+
+
+ Constructs a Quaternion from the given vector and rotation parts.
+
+ The vector part of the Quaternion.
+ The rotation part of the Quaternion.
+
+
+
+ Calculates the length of the Quaternion.
+
+ The computed length of the Quaternion.
+
+
+
+ Calculates the length squared of the Quaternion. This operation is cheaper than Length().
+
+ The length squared of the Quaternion.
+
+
+
+ Divides each component of the Quaternion by the length of the Quaternion.
+
+ The source Quaternion.
+ The normalized Quaternion.
+
+
+
+ Creates the conjugate of a specified Quaternion.
+
+ The Quaternion of which to return the conjugate.
+ A new Quaternion that is the conjugate of the specified one.
+
+
+
+ Returns the inverse of a Quaternion.
+
+ The source Quaternion.
+ The inverted Quaternion.
+
+
+
+ Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector.
+
+ The unit vector to rotate around.
+ This vector must be normalized before calling this function or the resulting Quaternion will be incorrect.
+ The angle, in radians, to rotate around the vector.
+ The created Quaternion.
+
+
+
+ Creates a new Quaternion from the given yaw, pitch, and roll, in radians.
+
+ The yaw angle, in radians, around the Y-axis.
+ The pitch angle, in radians, around the X-axis.
+ The roll angle, in radians, around the Z-axis.
+
+
+
+
+ Creates a Quaternion from the given rotation matrix.
+
+ The rotation matrix.
+ The created Quaternion.
+
+
+
+ Calculates the dot product of two Quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The dot product of the Quaternions.
+
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Linearly interpolates between two quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.
+
+ The first Quaternion rotation in the series.
+ The second Quaternion rotation in the series.
+ A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are not equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance.
+
+ The Quaternion to compare this instance to.
+ True if the other Quaternion is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Quaternion instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Quaternion; False otherwise.
+
+
+
+ Returns a String representing this Quaternion instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure describing the layout of an SSE2-sized register.
+ Contains overlapping fields representing the set of valid numeric types.
+ Allows the generic Vector'T struct to contain an explicit field layout.
+
+
+
+
+ A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent.
+ This struct only supports numerical types. This type is intended to be used as a building block for vectorizing
+ large algorithms. This type is immutable, individual elements cannot be modified.
+
+
+
+
+ Returns the number of elements stored in the vector. This value is hardware dependent.
+
+
+
+
+ Returns a vector containing all zeroes.
+
+
+
+
+ Returns a vector containing all ones.
+
+
+
+
+ Constructs a vector whose components are all value
+
+
+
+
+ Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count.
+
+
+
+
+ Constructs a vector from the given array, starting from the given index.
+ The array must contain at least Vector'T.Count from the given index.
+
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ If the destination array is null
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ The index to start copying to
+ If the destination array is null
+ If index is greater than end of the array or index is less than zero
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Returns the element at the given index.
+
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this vector instance.
+
+ The Object to compare against.
+ True if the Object is equal to this vector; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given vector is equal to this vector instance.
+
+ The vector to compare this instance to.
+ True if the other vector is equal to this instance; False otherwise.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a String representing this vector.
+
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if left and right are not equal; False otherwise.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
+
+
+
+
+ Widens a Vector{Byte} into two Vector{UInt16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt16} into two Vector{UInt32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt32} into two Vector{UInt64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{SByte} into two Vector{Int16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int16} into two Vector{Int32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int32} into two Vector{Int64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Single} into two Vector{Double}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Narrows two Vector{UInt16}'s into one Vector{Byte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Byte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt32}'s into one Vector{UInt16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt64}'s into one Vector{UInt32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int16}'s into one Vector{SByte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{SByte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int32}'s into one Vector{Int16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int64}'s into one Vector{Int32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Double}'s into one Vector{Single}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Single} containing elements narrowed from the source vectors.
+
+
+
+
+ Converts a Vector{Int32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Int64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{Int32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{UInt32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{Int64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{UInt64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any element pairs are equal; False if no element pairs are equal.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right.
+ elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support.
+
+
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimum vector.
+
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximum vector.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first source vector.
+ The second source vector.
+ The dot product.
+
+
+
+ Returns a new vector whose elements are the square roots of the given vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Creates a new vector whose values are the sum of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Creates a new vector whose values are the difference between each pairs of elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Creates a new vector whose values are the product of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The source vector.
+ The scalar factor.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The scalar factor.
+ The source vector.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements
+ by the corresponding elements in the second vector.
+
+ The first source vector.
+ The second source vector.
+ The divided vector.
+
+
+
+ Returns a new vector whose elements are the given vector's elements negated.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ A structure encapsulating two single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0).
+
+
+
+
+ Returns the vector (1,1).
+
+
+
+
+ Returns the vector (1,0).
+
+
+
+
+ Returns the vector (0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector2 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector2; False otherwise.
+
+
+
+ Returns a String representing this Vector2 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+ The destination array.
+
+
+
+ Copies the contents of the vector into the given array, starting from the given index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array
+ or if there are not enough elements to copy.
+
+
+
+ Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance.
+
+ The Vector2 to compare this instance to.
+ True if the other Vector2 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors
+
+ The first source vector
+ The second source vector
+ The maximized vector
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating three single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0).
+
+
+
+
+ Returns the vector (1,1,1).
+
+
+
+
+ Returns the vector (1,0,0).
+
+
+
+
+ Returns the vector (0,1,0).
+
+
+
+
+ Returns the vector (0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector3 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector3; False otherwise.
+
+
+
+ Returns a String representing this Vector3 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a Vector3 from the given Vector2 and a third value.
+
+ The Vector to extract X and Y components from.
+ The Z component.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+ The Z component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance.
+
+ The Vector3 to compare this instance to.
+ True if the other Vector3 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating four single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0,0).
+
+
+
+
+ Returns the vector (1,1,1,1).
+
+
+
+
+ Returns the vector (1,0,0,0).
+
+
+
+
+ Returns the vector (0,1,0,0).
+
+
+
+
+ Returns the vector (0,0,1,0).
+
+
+
+
+ Returns the vector (0,0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector4 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector4; False otherwise.
+
+
+
+ Returns a String representing this Vector4 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector. This operation is cheaper than Length().
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared.
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ The W component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ W component.
+ X component.
+ Y component.
+ Z component.
+
+
+
+ Constructs a Vector4 from the given Vector2 and a Z and W component.
+
+ The vector to use as the X and Y components.
+ The Z component.
+ The W component.
+
+
+
+ Constructs a Vector4 from the given Vector3 and a W component.
+
+ The vector to use as the X, Y, and Z components.
+ The W component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance.
+
+ The Vector4 to compare this instance to.
+ True if the other Vector4 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+ Index was out of bounds:
+
+
+ Number of elements in source vector is greater than the destination array
+
+
+ The method was called with a null array argument.
+
+
+ Specified type is not supported
+
+
+ At least {0} element(s) are expected in the parameter "{1}".
+
+
+
diff --git a/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml b/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..7acab80
--- /dev/null
+++ b/hMarkdown/bin/Release/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,353 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A reference to the value to copy.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A pointer to the value to copy.
+
+
+
+ Returns a pointer to the given by-ref parameter.
+
+ The type of object.
+ The object whose pointer is obtained.
+ A pointer to the given value.
+
+
+
+ Returns the size of an object of the given type parameter.
+
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+
+ Casts the given object to the specified type, performs no dynamic type checking.
+
+ The type which the object will be cast to.
+ The object to cast.
+ The original object, casted to the given type.
+
+
+
+ Reinterprets the given location as a reference to a value of type .
+
+ The type of the interpreted location.
+ The location of the value to reference.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given read-only reference as a reference.
+
+ The type of reference.
+ The read-only reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given reference as a reference to a value of type .
+
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ The reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Returns a reference to the value type contained with the specified box object.
+
+ The type of the value type contained within the box.
+ The boxed value type.
+ A reference to a value of type in the box object.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given pointer.
+
+ The type of reference.
+ The pointer to add the offset to.
+ The offset to add.
+ A new pointer that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Determines the byte offset from origin to target from the given references.
+
+ The type of reference.
+ The reference to origin.
+ The reference to target.
+ Byte offset from origin to target i.e. - .
+
+
+
+ Determines whether the specified references point to the same location.
+
+ The first reference to compare.
+ The second reference to compare.
+ true if and point to the same location; otherwise false.
+
+
+
+ Determines whether the memory address referenced by is greater than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is greater than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Determines whether the memory address referenced by is less than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is less than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Returns if a given reference to a value of type is a null reference.
+
+ The reference to check.
+ This check is conceptually similar to "(void*)(&source) == nullptr".
+
+
+
+ Returns a reference to a value of type that is a null reference.
+
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
diff --git a/hMarkdown/bin/Release/app.publish/hMarkdown.exe b/hMarkdown/bin/Release/app.publish/hMarkdown.exe
new file mode 100644
index 0000000..2cd8d7a
Binary files /dev/null and b/hMarkdown/bin/Release/app.publish/hMarkdown.exe differ
diff --git a/hMarkdown/bin/Release/hMarkdown.application b/hMarkdown/bin/Release/hMarkdown.application
new file mode 100644
index 0000000..1b86f74
--- /dev/null
+++ b/hMarkdown/bin/Release/hMarkdown.application
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +PZ/YtnyQWxKpQH38+rzr0OHtpkGZ8XQbuLujxv/D1c=
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/bin/Release/hMarkdown.exe b/hMarkdown/bin/Release/hMarkdown.exe
new file mode 100644
index 0000000..e790a63
Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.exe differ
diff --git a/hMarkdown/bin/Release/hMarkdown.exe.config b/hMarkdown/bin/Release/hMarkdown.exe.config
new file mode 100644
index 0000000..3d9ac87
--- /dev/null
+++ b/hMarkdown/bin/Release/hMarkdown.exe.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/bin/Release/hMarkdown.exe.manifest b/hMarkdown/bin/Release/hMarkdown.exe.manifest
new file mode 100644
index 0000000..c1f2501
--- /dev/null
+++ b/hMarkdown/bin/Release/hMarkdown.exe.manifest
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PDOL4DwFbpmGLKTj3mcSmzimDS/aRG8cKlniL2EyOZc=
+
+
+
+
+
+
+
+
+
+ 9RDR0peZ5Sr0oovPm3DcZmAv9ZZieDh3A/bOlz+dA7g=
+
+
+
+
+
+
+
+
+ aBBjAICalkdQmTQBnYVM5xBfWEJv1l05kwQMkfynYIE=
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/bin/Release/hMarkdown.lnk b/hMarkdown/bin/Release/hMarkdown.lnk
new file mode 100644
index 0000000..cd4f85e
Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.lnk differ
diff --git a/hMarkdown/bin/Release/hMarkdown.pdb b/hMarkdown/bin/Release/hMarkdown.pdb
new file mode 100644
index 0000000..814a38d
Binary files /dev/null and b/hMarkdown/bin/Release/hMarkdown.pdb differ
diff --git a/hMarkdown/hMarkdown.csproj b/hMarkdown/hMarkdown.csproj
new file mode 100644
index 0000000..03142ca
--- /dev/null
+++ b/hMarkdown/hMarkdown.csproj
@@ -0,0 +1,164 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ {A8E10C05-F985-4702-8AE2-B5D95E9AED83}
+ WinExe
+ hMarkdown
+ hMarkdown
+ v4.8
+ 512
+ true
+ true
+ false
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 1
+ 1.0.1.%2a
+ false
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ embedded
+ true
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ hMarkdown.ico
+
+
+ 30C74CF3F4C04AC892558ECE90FE433BE8797724
+
+
+ hMarkdown_TemporaryKey.pfx
+
+
+ true
+
+
+ true
+
+
+
+ ..\packages\Costura.Fody.6.0.0\lib\netstandard2.0\Costura.dll
+
+
+ ..\packages\Markdig.0.41.3\lib\net462\Markdig.dll
+
+
+
+ ..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll
+
+
+
+ ..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+ False
+ Microsoft .NET Framework 4.8 %28x86 and x64%29
+ true
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/hMarkdown.csproj.user b/hMarkdown/hMarkdown.csproj.user
new file mode 100644
index 0000000..d213892
--- /dev/null
+++ b/hMarkdown/hMarkdown.csproj.user
@@ -0,0 +1,13 @@
+
+
+
+ publish\
+
+
+
+
+
+ en-US
+ false
+
+
\ No newline at end of file
diff --git a/hMarkdown/hMarkdown.ico b/hMarkdown/hMarkdown.ico
new file mode 100644
index 0000000..31ae85b
Binary files /dev/null and b/hMarkdown/hMarkdown.ico differ
diff --git a/hMarkdown/hMarkdown_TemporaryKey.pfx b/hMarkdown/hMarkdown_TemporaryKey.pfx
new file mode 100644
index 0000000..cc46b7e
Binary files /dev/null and b/hMarkdown/hMarkdown_TemporaryKey.pfx differ
diff --git a/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..15efebf
--- /dev/null
+++ b/hMarkdown/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..c540245
Binary files /dev/null and b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..a435f7a
Binary files /dev/null and b/hMarkdown/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.Form1.resources b/hMarkdown/obj/Debug/hMarkdown.Form1.resources
new file mode 100644
index 0000000..ec41da6
Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.Form1.resources differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources b/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.Properties.Resources.resources differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..4aa6897
Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.csproj.AssemblyReference.cache differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..690b7a7
--- /dev/null
+++ b/hMarkdown/obj/Debug/hMarkdown.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+86934d787afd505889e9497b25ca48e6940c0f6af6c72a88138738d5ea56e4ba
diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt b/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..5f7faf7
--- /dev/null
+++ b/hMarkdown/obj/Debug/hMarkdown.csproj.FileListAbsolute.txt
@@ -0,0 +1,20 @@
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\hMarkdown.exe.config
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\hMarkdown.exe
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\Markdig.dll
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Buffers.dll
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Memory.dll
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Numerics.Vectors.dll
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\Markdig.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Buffers.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Memory.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Numerics.Vectors.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.AssemblyReference.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.Form1.resources
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.Properties.Resources.resources
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.GenerateResource.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.CoreCompileInputs.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.csproj.Up2Date
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.exe
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Debug\hMarkdown.exe.config
diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache b/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache
new file mode 100644
index 0000000..3e75afa
Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.csproj.GenerateResource.cache differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.csproj.Up2Date b/hMarkdown/obj/Debug/hMarkdown.csproj.Up2Date
new file mode 100644
index 0000000..e69de29
diff --git a/hMarkdown/obj/Debug/hMarkdown.exe b/hMarkdown/obj/Debug/hMarkdown.exe
new file mode 100644
index 0000000..cd76b68
Binary files /dev/null and b/hMarkdown/obj/Debug/hMarkdown.exe differ
diff --git a/hMarkdown/obj/Debug/hMarkdown.exe.config b/hMarkdown/obj/Debug/hMarkdown.exe.config
new file mode 100644
index 0000000..3d9ac87
--- /dev/null
+++ b/hMarkdown/obj/Debug/hMarkdown.exe.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..15efebf
--- /dev/null
+++ b/hMarkdown/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed
new file mode 100644
index 0000000..9568d81
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/028E9832F421F11F9497C610F1734E0F3D868037.costura.costura.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed
new file mode 100644
index 0000000..07506ce
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/1A078D8DD40BEAD1D88CB4549E57977924BE2B5B.costura.markdig.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed
new file mode 100644
index 0000000..e8cc240
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/43290CD4AAF80DF5D1CF9F242486EF8E646FDDDA.costura.system.runtime.compilerservices.unsafe.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed b/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed
new file mode 100644
index 0000000..311e781
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/806F4C19B2D7FD9E3B836269EC07647019A29E95.costura.costura.pdb.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed
new file mode 100644
index 0000000..747e589
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/96C87B7148805A0ADCD4B9E23162DEB06D7A4702.costura.system.memory.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed
new file mode 100644
index 0000000..5acefd6
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/C5583C3257CF193FF4736671445F8DA64366A6A1.costura.system.numerics.vectors.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed b/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed
new file mode 100644
index 0000000..7b0cdb5
Binary files /dev/null and b/hMarkdown/obj/Release/Costura/D87680E1A96549CF45506D17566EC08C27A770D8.costura.system.buffers.dll.compressed.compressed differ
diff --git a/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..c249197
Binary files /dev/null and b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..3a6c818
Binary files /dev/null and b/hMarkdown/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/hMarkdown/obj/Release/hMarkdown.Form1.resources b/hMarkdown/obj/Release/hMarkdown.Form1.resources
new file mode 100644
index 0000000..ec41da6
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.Form1.resources differ
diff --git a/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources b/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.Properties.Resources.resources differ
diff --git a/hMarkdown/obj/Release/hMarkdown.application b/hMarkdown/obj/Release/hMarkdown.application
new file mode 100644
index 0000000..1b86f74
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.application
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +PZ/YtnyQWxKpQH38+rzr0OHtpkGZ8XQbuLujxv/D1c=
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache b/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..8881595
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.csproj.AssemblyReference.cache differ
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache b/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..33b08da
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+699e082d604b947c681e689450dd04813aee822e5b1fdcc6555c9fc00a43ba01
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt b/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..5df7529
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.csproj.FileListAbsolute.txt
@@ -0,0 +1,23 @@
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe.config
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.pdb
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\Markdig.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Buffers.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Memory.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Numerics.Vectors.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\System.Runtime.CompilerServices.Unsafe.xml
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.AssemblyReference.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.Form1.resources
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.Properties.Resources.resources
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.GenerateResource.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.CoreCompileInputs.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Up2Date
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.pdb
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.exe.manifest
+D:\Calismalar\C#\hMarkdown\hMarkdown\bin\Release\hMarkdown.application
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe.config
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.exe.manifest
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.application
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Fody.CopyLocal.cache
+D:\Calismalar\C#\hMarkdown\hMarkdown\obj\Release\hMarkdown.csproj.Fody.RuntimeCopyLocal.cache
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache
new file mode 100644
index 0000000..083ca37
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.CopyLocal.cache
@@ -0,0 +1,5 @@
+D:\Calismalar\C#\hMarkdown\packages\Markdig.0.41.3\lib\net462\Markdig.xml
+D:\Calismalar\C#\hMarkdown\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.xml
+D:\Calismalar\C#\hMarkdown\packages\System.Memory.4.6.3\lib\net462\System.Memory.xml
+D:\Calismalar\C#\hMarkdown\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.xml
+D:\Calismalar\C#\hMarkdown\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.xml
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Fody.RuntimeCopyLocal.cache b/hMarkdown/obj/Release/hMarkdown.csproj.Fody.RuntimeCopyLocal.cache
new file mode 100644
index 0000000..e69de29
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache b/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache
new file mode 100644
index 0000000..3e75afa
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.csproj.GenerateResource.cache differ
diff --git a/hMarkdown/obj/Release/hMarkdown.csproj.Up2Date b/hMarkdown/obj/Release/hMarkdown.csproj.Up2Date
new file mode 100644
index 0000000..e69de29
diff --git a/hMarkdown/obj/Release/hMarkdown.exe b/hMarkdown/obj/Release/hMarkdown.exe
new file mode 100644
index 0000000..e790a63
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.exe differ
diff --git a/hMarkdown/obj/Release/hMarkdown.exe.config b/hMarkdown/obj/Release/hMarkdown.exe.config
new file mode 100644
index 0000000..3d9ac87
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.exe.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/obj/Release/hMarkdown.exe.manifest b/hMarkdown/obj/Release/hMarkdown.exe.manifest
new file mode 100644
index 0000000..c1f2501
--- /dev/null
+++ b/hMarkdown/obj/Release/hMarkdown.exe.manifest
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PDOL4DwFbpmGLKTj3mcSmzimDS/aRG8cKlniL2EyOZc=
+
+
+
+
+
+
+
+
+
+ 9RDR0peZ5Sr0oovPm3DcZmAv9ZZieDh3A/bOlz+dA7g=
+
+
+
+
+
+
+
+
+ aBBjAICalkdQmTQBnYVM5xBfWEJv1l05kwQMkfynYIE=
+
+
+
\ No newline at end of file
diff --git a/hMarkdown/obj/Release/hMarkdown.pdb b/hMarkdown/obj/Release/hMarkdown.pdb
new file mode 100644
index 0000000..814a38d
Binary files /dev/null and b/hMarkdown/obj/Release/hMarkdown.pdb differ
diff --git a/hMarkdown/packages.config b/hMarkdown/packages.config
new file mode 100644
index 0000000..51d5991
--- /dev/null
+++ b/hMarkdown/packages.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Costura.Fody.6.0.0/.signature.p7s b/packages/Costura.Fody.6.0.0/.signature.p7s
new file mode 100644
index 0000000..fb88a74
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/.signature.p7s differ
diff --git a/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg b/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg
new file mode 100644
index 0000000..373543c
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/Costura.Fody.6.0.0.nupkg differ
diff --git a/packages/Costura.Fody.6.0.0/build/Costura.Fody.props b/packages/Costura.Fody.6.0.0/build/Costura.Fody.props
new file mode 100644
index 0000000..043e08f
--- /dev/null
+++ b/packages/Costura.Fody.6.0.0/build/Costura.Fody.props
@@ -0,0 +1,15 @@
+
+
+
+ netclassicweaver
+ netstandardweaver
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets b/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets
new file mode 100644
index 0000000..1a3b976
--- /dev/null
+++ b/packages/Costura.Fody.6.0.0/build/Costura.Fody.targets
@@ -0,0 +1,13 @@
+
+
+
+ true
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Costura.Fody.6.0.0/icon.png b/packages/Costura.Fody.6.0.0/icon.png
new file mode 100644
index 0000000..e5fdc34
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/icon.png differ
diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll
new file mode 100644
index 0000000..44c0e69
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.dll differ
diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb
new file mode 100644
index 0000000..85845fd
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.pdb differ
diff --git a/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml
new file mode 100644
index 0000000..75ef55b
--- /dev/null
+++ b/packages/Costura.Fody.6.0.0/lib/netstandard2.0/Costura.xml
@@ -0,0 +1,23 @@
+
+
+
+ Costura
+
+
+
+
+ Note: do not rename this class or put it inside a namespace.
+
+
+
+
+ Contains methods for interacting with the Costura system.
+
+
+
+
+ Call this to Initialize the Costura system.
+
+
+
+
diff --git a/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll
new file mode 100644
index 0000000..5df6578
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.dll differ
diff --git a/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf
new file mode 100644
index 0000000..c77b140
--- /dev/null
+++ b/packages/Costura.Fody.6.0.0/netclassicweaver/Costura.Fody.xcf
@@ -0,0 +1,150 @@
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead.
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Controls if runtime assemblies are also embedded.
+
+
+
+
+ Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
\ No newline at end of file
diff --git a/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll
new file mode 100644
index 0000000..cb55b0c
Binary files /dev/null and b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.dll differ
diff --git a/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf
new file mode 100644
index 0000000..c77b140
--- /dev/null
+++ b/packages/Costura.Fody.6.0.0/netstandardweaver/Costura.Fody.xcf
@@ -0,0 +1,150 @@
+
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead.
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with line breaks.
+
+
+
+
+ The order of preloaded assemblies, delimited with line breaks.
+
+
+
+
+
+ This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.
+
+
+
+
+ Controls if .pdbs for reference assemblies are also embedded.
+
+
+
+
+ Controls if runtime assemblies are also embedded.
+
+
+
+
+ Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.
+
+
+
+
+ Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.
+
+
+
+
+ As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.
+
+
+
+
+ The attach method no longer subscribes to the `AppDomain.AssemblyResolve` (.NET 4.x) and `AssemblyLoadContext.Resolving` (.NET 6.0+) events.
+
+
+
+
+ Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.
+
+
+
+
+ Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.
+
+
+
+
+ A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |
+
+
+
+
+ A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX86Assemblies instead
+
+
+
+
+ A list of unmanaged X86 (32 bit) assembly names to include, delimited with |.
+
+
+
+
+ Obsolete, use UnmanagedWinX64Assemblies instead
+
+
+
+
+ A list of unmanaged X64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ A list of unmanaged Arm64 (64 bit) assembly names to include, delimited with |.
+
+
+
+
+ The order of preloaded assemblies, delimited with |.
+
+
+
\ No newline at end of file
diff --git a/packages/Fody.6.8.2/.signature.p7s b/packages/Fody.6.8.2/.signature.p7s
new file mode 100644
index 0000000..dc830e2
Binary files /dev/null and b/packages/Fody.6.8.2/.signature.p7s differ
diff --git a/packages/Fody.6.8.2/Fody.6.8.2.nupkg b/packages/Fody.6.8.2/Fody.6.8.2.nupkg
new file mode 100644
index 0000000..6a2f178
Binary files /dev/null and b/packages/Fody.6.8.2/Fody.6.8.2.nupkg differ
diff --git a/packages/Fody.6.8.2/License.txt b/packages/Fody.6.8.2/License.txt
new file mode 100644
index 0000000..e53c1de
--- /dev/null
+++ b/packages/Fody.6.8.2/License.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Simon Cropp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/packages/Fody.6.8.2/build/Fody.targets b/packages/Fody.6.8.2/build/Fody.targets
new file mode 100644
index 0000000..35d38f9
--- /dev/null
+++ b/packages/Fody.6.8.2/build/Fody.targets
@@ -0,0 +1,149 @@
+
+
+ $(ProjectDir)FodyWeavers.xml
+ $(MSBuildThisFileDirectory)..\
+ $(FodyPath)netstandardtask
+ $(FodyPath)netclassictask
+ $(FodyAssemblyDirectory)\Fody.dll
+ $(DefaultItemExcludes);FodyWeavers.xsd
+ true
+ 15
+ $([System.Version]::Parse($(MSBuildVersion)).Major)
+ AfterCompile
+ $(TargetsTriggeredByCompilation);FodyTarget
+ true
+ $(TreatWarningsAsErrors)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Fody.6.8.2/netclassictask/Fody.dll b/packages/Fody.6.8.2/netclassictask/Fody.dll
new file mode 100644
index 0000000..dcc8593
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Fody.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/FodyCommon.dll b/packages/Fody.6.8.2/netclassictask/FodyCommon.dll
new file mode 100644
index 0000000..26afd10
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyCommon.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll b/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll
new file mode 100644
index 0000000..0e8a2d6
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyHelpers.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll b/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll
new file mode 100644
index 0000000..7467c4f
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/FodyIsolated.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll
new file mode 100644
index 0000000..5f65753
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb
new file mode 100644
index 0000000..716032c
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Pdb.pdb differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll
new file mode 100644
index 0000000..de37dc0
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb
new file mode 100644
index 0000000..2604d55
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.Rocks.pdb differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll
new file mode 100644
index 0000000..ce0a2f2
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.dll differ
diff --git a/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb
new file mode 100644
index 0000000..9fdf309
Binary files /dev/null and b/packages/Fody.6.8.2/netclassictask/Mono.Cecil.pdb differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Fody.dll b/packages/Fody.6.8.2/netstandardtask/Fody.dll
new file mode 100644
index 0000000..01f5545
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Fody.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll b/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll
new file mode 100644
index 0000000..0d5013e
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyCommon.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll b/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll
new file mode 100644
index 0000000..0e8a2d6
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyHelpers.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll b/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll
new file mode 100644
index 0000000..c643697
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/FodyIsolated.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll
new file mode 100644
index 0000000..df1c878
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb
new file mode 100644
index 0000000..21c0a8e
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Pdb.pdb differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll
new file mode 100644
index 0000000..3d9ca3f
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb
new file mode 100644
index 0000000..7ee5bfa
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.Rocks.pdb differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll
new file mode 100644
index 0000000..7986139
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.dll differ
diff --git a/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb
new file mode 100644
index 0000000..2bffe4c
Binary files /dev/null and b/packages/Fody.6.8.2/netstandardtask/Mono.Cecil.pdb differ
diff --git a/packages/Fody.6.8.2/readme.md b/packages/Fody.6.8.2/readme.md
new file mode 100644
index 0000000..658c167
--- /dev/null
+++ b/packages/Fody.6.8.2/readme.md
@@ -0,0 +1,98 @@
+[](https://ci.appveyor.com/project/SimonCropp/fody/branch/master)
+[](https://gitter.im/Fody/Fody)
+[](https://www.nuget.org/packages/Fody/)
+[](#patrons)
+
+###
Extensible tool for weaving .net assemblies
+
+Manipulating the IL of an assembly as part of a build requires a significant amount of plumbing code. This plumbing code involves knowledge of both the MSBuild and Visual Studio APIs. Fody attempts to eliminate that plumbing code through an extensible add-in model.
+
+**This is the codebase of core Fody engine. For more information on the larger Fody project see https://github.com/Fody/Home.**
+
+**See [Milestones](https://github.com/Fody/Fody/milestones?state=closed) for release notes.**
+
+
+
+
+[Already a Patron? skip past this section](#endofbacking)
+
+
+## Community backed
+
+Fody requires significant effort to maintain. As such it relies on financial support to ensure its long term viability.
+
+**It is expected that all developers using Fody [become a Patron on OpenCollective](https://opencollective.com/fody/contribute/patron-3059).**
+
+[See Licensing/Patron FAQ](https://github.com/Fody/Home/blob/master/pages/licensing-patron-faq.md) for more information.
+
+
+### Gold Sponsors
+
+Support this project by [becoming a Gold Sponsor](https://opencollective.com/fody/contribute/gold-7088). A large company logo will be added here with a link to your website.
+
+
+
+
+### Silver Sponsors
+
+Support this project by [becoming a Silver Sponsor](https://opencollective.com/fody/contribute/silver-7086). A medium company logo will be added here with a link to your website.
+
+
+
+
+### Bronze Sponsors
+
+Support this project by [becoming a Bronze Sponsor](https://opencollective.com/fody/contribute/bronze-7085). The company avatar will show up here with a link to your OpenCollective Profile.
+
+
+
+
+
+### Patrons and sponsors
+
+Thanks to all the backers and sponsors! Support this project by [becoming a patron](https://opencollective.com/fody/contribute/patron-3059).
+
+
+
+
+
+
+
+## Documentation and Further Learning
+
+ * [Licensing and patron FAQ](https://github.com/Fody/Home/tree/master/pages/licensing-patron-faq.md)
+ **It is expected that all developers using Fody [become a Patron on OpenCollective](https://opencollective.com/fody/order/3059).** See [Licensing/Patron FAQ](https://github.com/Fody/Home/tree/master/pages/licensing-patron-faq.md) for more information.
+ * [Usage](https://github.com/Fody/Home/tree/master/pages/usage.md)
+ Introduction to using Fody.
+ * [Configuration](https://github.com/Fody/Home/tree/master/pages/configuration.md)
+ All configuration options for Fody.
+ * [Addin discovery](https://github.com/Fody/Home/tree/master/pages/addin-discovery.md)
+ How addins are resolved.
+ * [List of Fody weavers/addins](https://github.com/Fody/Home/tree/master/pages/addins.md)
+ * [Changelog](https://github.com/Fody/Fody/milestones?state=closed)
+ * [FodyAddinSamples](https://github.com/Fody/FodyAddinSamples)
+ A GitHub repo that contains a working sample of every Fody addin.
+ * [Common errors](https://github.com/Fody/Home/tree/master/pages/common-errors.md)
+ * [In solution weaving](https://github.com/Fody/Home/tree/master/pages/in-solution-weaving.md)
+ Writing an addin that manipulates IL within the same solution.
+ * [ProcessedByFody class](https://github.com/Fody/Home/tree/master/pages/processedbyfody-class.md)
+ Marker class added to target assemblies for diagnostic purposes.
+ * [Strong naming](https://github.com/Fody/Home/tree/master/pages/strong-naming.md)
+ * [Supported runtimes and IDE](https://github.com/Fody/Home/tree/master/pages/supported-runtimes-and-ide.md)
+ * [Addin development](https://github.com/Fody/Home/tree/master/pages/addin-development.md)
+ Building a new Fody addin.
+ * [Addin packaging](https://github.com/Fody/Home/tree/master/pages/addin-packaging.md)
+ Packaging and deployment of Fody weavers.
+ * [BasicFodyAddin](https://github.com/Fody/Home/tree/master/BasicFodyAddin)
+ A simple project meant to illustrate how to build an addin.
+ * [Fody Project Configuration Manager](https://github.com/tom-englert/ProjectConfigurationManager/wiki/6.-Fody)
+ Provides an interactive tool that can support configuring weavers, which is especially helpful in solutions with many projects.
+ * [Backers tracking/info](https://github.com/Fody/Home/tree/master/pages/backers.md)
+ * [Donations](https://github.com/Fody/Home/tree/master/pages/donations.md)
+ Every month the Fody project will donate a portion of funding raised to a charity or other cause.
+
+
+## Contributors
+
+This project exists thanks to all the people who contribute.
+
diff --git a/packages/Markdig.0.41.3/.signature.p7s b/packages/Markdig.0.41.3/.signature.p7s
new file mode 100644
index 0000000..ed5f625
Binary files /dev/null and b/packages/Markdig.0.41.3/.signature.p7s differ
diff --git a/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg b/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg
new file mode 100644
index 0000000..91b0a23
Binary files /dev/null and b/packages/Markdig.0.41.3/Markdig.0.41.3.nupkg differ
diff --git a/packages/Markdig.0.41.3/lib/net462/Markdig.dll b/packages/Markdig.0.41.3/lib/net462/Markdig.dll
new file mode 100644
index 0000000..7db7513
Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net462/Markdig.dll differ
diff --git a/packages/Markdig.0.41.3/lib/net462/Markdig.xml b/packages/Markdig.0.41.3/lib/net462/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/packages/Markdig.0.41.3/lib/net462/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll b/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll
new file mode 100644
index 0000000..4bc30f2
Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net8.0/Markdig.dll differ
diff --git a/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml b/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/packages/Markdig.0.41.3/lib/net8.0/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll b/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll
new file mode 100644
index 0000000..495bb37
Binary files /dev/null and b/packages/Markdig.0.41.3/lib/net9.0/Markdig.dll differ
diff --git a/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml b/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/packages/Markdig.0.41.3/lib/net9.0/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll
new file mode 100644
index 0000000..e9716ab
Binary files /dev/null and b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.dll differ
diff --git a/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/packages/Markdig.0.41.3/lib/netstandard2.0/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll
new file mode 100644
index 0000000..c3326fa
Binary files /dev/null and b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.dll differ
diff --git a/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml
new file mode 100644
index 0000000..a2d0e70
--- /dev/null
+++ b/packages/Markdig.0.41.3/lib/netstandard2.1/Markdig.xml
@@ -0,0 +1,6643 @@
+
+
+
+ Markdig
+
+
+
+
+ An abbreviation object stored at the document level. See extension methods in .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The text associated to this label.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow abbreviations.
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ The inline abbreviation.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The abbreviation.
+
+
+
+ A block parser for abbreviations.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block representing an alert quote block.
+
+
+
+
+ Creates a new instance of this block.
+
+
+
+
+
+ Gets or sets the kind of the alert block (e.g `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, `CAUTION`).
+
+
+
+
+ Gets or sets the trivia space after the kind.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Creates a new instance of this renderer.
+
+
+
+
+ Gets of sets a delegate to render the kind of the alert.
+
+
+
+
+
+
+
+ Renders the kind of the alert.
+
+ The HTML renderer.
+ The kind of the alert to render
+
+
+
+ Extension for adding alerts to a Markdown pipeline.
+
+
+
+
+ Gets or sets the delegate to render the kind of the alert.
+
+
+
+
+
+
+
+
+
+
+ An inline parser for an alert inline (e.g. `[!NOTE]`).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The auto-identifier extension
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Process on a new
+
+ The processor.
+ The heading block.
+
+
+
+ Callback when there is a reference to found to a heading.
+ Note that reference are only working if they are declared after.
+
+
+
+
+ Process the inlines of the heading to create a unique identifier
+
+ The processor.
+ The inline.
+
+
+
+ Options for the .
+
+
+
+
+ No options: does not apply any additional formatting and/or transformations.
+
+
+
+
+ Default ()
+
+
+
+
+ Allows to link to a header by using the same text as the header for the link label. Default is true
+
+
+
+
+ Allows only ASCII characters in the url (HTML 5 allows to have UTF8 characters). Default is true
+
+
+
+
+ Renders auto identifiers like GitHub.
+
+
+
+
+ A link reference definition to a stored at the level.
+
+
+
+
+
+ Gets or sets the heading related to this link reference definition.
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Extension to automatically create when a link url http: or mailto: is found.
+
+
+
+
+
+ Should the link open in a new window when clicked (false by default)
+
+
+
+
+ Should a www link be prefixed with https:// instead of http:// (false by default)
+
+
+
+
+ Should auto-linking allow a domain with no period, e.g. https://localhost (false by default)
+
+
+
+
+ The inline parser used to for autolinks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for tagging some HTML elements with bootstrap classes.
+
+
+
+
+
+ Extension for cite ""...""
+
+
+
+
+
+ A block custom container.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to allow custom containers.
+
+
+
+
+
+ An inline custom container
+
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A definition item contains zero to multiple
+ and definitions (any )
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character for this definition item (either `:` or `~`)
+
+
+
+
+ A definition list contains children.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow definition lists
+
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A definition term contains a single line with the term to define.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A HTML renderer for , and .
+
+
+
+
+
+ Extension to allow diagrams.
+
+
+
+
+
+ Extension to allow emoji shortcodes and smileys replacement.
+
+
+
+
+
+ An emoji inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Gets or sets the original match string (either an emoji shortcode or a text smiley)
+
+
+
+
+ An emoji shortcodes and smileys mapping, to be used by .
+
+
+
+
+ The default emoji shortcodes and smileys mapping.
+
+
+
+
+ The default emoji shortcodes mapping, without smileys.
+
+
+
+
+ Returns a new instance of the default emoji shortcode to emoji unicode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Gets a new instance of the default smiley to emoji shortcode dictionary.
+ It can be used to create a customized .
+
+
+
+
+ Constructs a mapping for the default emoji shortcodes and smileys.
+
+
+
+
+ Constructs a mapping from a dictionary of emoji shortcodes to unicode, and a dictionary of smileys to emoji shortcodes.
+
+
+
+
+ The inline parser used for emojis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for strikethrough, subscript, superscript, inserted and marked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for enabling support for extra emphasis.
+
+
+
+
+ Allows all extra emphasis (default).
+
+
+
+
+ A text that can be strikethrough using the double character ~~
+
+
+
+
+ A text that can be rendered as a subscript using the character ~
+
+
+
+
+ A text that can be rendered as a superscript using the character ^
+
+
+
+
+ A text that can be rendered as inserted using the double character ++
+
+
+
+
+ A text that can be rendered as marked using the double character ==
+
+
+
+
+ Defines a figure container.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character count used to open this figure code block.
+
+
+
+
+ Gets or sets the opening character used to open and close this figure code block.
+
+
+
+
+ The block parser for a block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Defines a figure caption.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Extension to allow usage of figures and figure captions.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block element for a footer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the opening character used to match this footer (by default it is ^)
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension that provides footer.
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A block for a footnote.
+
+
+
+
+
+ Gets or sets the label used by this footnote.
+
+
+
+
+ Gets or sets the order of this footnote (determined by the order of the in the document)
+
+
+
+
+ Gets the links referencing this footnote.
+
+
+
+
+ The label span
+
+
+
+
+ Extension to allow footnotes.
+
+
+
+
+
+ A block that contains all the footnotes at the end of a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A inline link to a .
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is back link (from a footnote to the link)
+
+
+
+
+ Gets or sets the global index number of this link.
+
+
+
+
+ Gets or sets the footnote this link refers to.
+
+
+
+
+ A link reference definition stored at the level.
+
+
+
+
+
+ Gets or sets the footnote related to this link reference definition.
+
+
+
+
+ The block parser for a .
+
+
+
+
+
+ The key used to store at the document level the pending
+
+
+
+
+ Add footnotes to the end of the document
+
+ The processor.
+ The inline.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the CSS group class used when rendering the <div> of this instance.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Extension that allows to attach HTML attributes to the previous or current .
+ This extension should be enabled last after enabling other extensions.
+
+
+
+
+
+ An inline parser used to parse a HTML attributes that can be attached to the previous or current .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Tries to extra from the current position of a slice an HTML attributes {...}
+
+ The slice to parse.
+ The output attributes or null if not found or invalid
+ true if parsing the HTML attributes was successful
+
+
+
+ Extension to add support for RTL content.
+
+
+
+
+ Extension to generate hardline break for softline breaks.
+
+
+
+
+
+ Model for a JIRA link item
+
+
+
+
+ JIRA Project Key
+
+
+
+
+ JIRA Issue Number
+
+
+
+
+ Simple inline parser extension for Markdig to find, and
+ automatically add links to JIRA issue numbers.
+
+
+
+
+ Finds and replaces JIRA links inline
+
+
+
+
+ Available options for replacing JIRA links
+
+
+
+
+ The base Url (e.g. `https://mycompany.atlassian.net`)
+
+
+
+
+ The base path after the base url (default is `/browse`)
+
+
+
+
+ Should the link open in a new window when clicked
+
+
+
+
+ Gets the full url composed of the and with no trailing `/`
+
+
+
+
+ Extension for adding new type of list items (a., A., i., I.)
+
+
+
+
+
+ Parser that adds supports for parsing alpha/roman list items (e.g: `a)` or `a.` or `ii.` or `II.`)
+
+
+ Note that we don't validate roman numbers.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A math block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ The block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Extension for adding inline mathematics $...$
+
+
+
+
+
+ A math inline element.
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the delimiter count.
+
+
+
+
+ The content as a .
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the default class to use when creating a math inline block.
+
+
+
+
+ Create a with delegate handler.
+
+ Prefix of host that can be handled.
+ Handler that generate iframe url, if uri cannot be handled, it can return .
+ Should the generated iframe has allowfullscreen attribute.
+ "class" attribute of generated iframe.
+ A with delegate handler.
+
+
+
+ Provides url for media links.
+
+
+
+
+ "class" attribute of generated iframe.
+
+
+
+
+ Generate url for iframe.
+
+ Input media uri.
+ if is a schema relative uri, i.e. uri starts with "//".
+ Generated url for iframe.
+
+
+
+
+ Should the generated iframe has allowfullscreen attribute.
+
+
+ Should be false for audio embedding.
+
+
+
+
+ Extension for extending image Markdown links in case a video or an audio file is linked and output proper link.
+
+
+
+
+
+ Options for the .
+
+
+
+
+ Extension that will disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+
+
+
+ Extension to automatically render rel=nofollow to all links in an HTML output.
+
+
+
+
+ Extension to a span for each line containing the original line id (using id = pragma-line#line_number_zero_based)
+
+
+
+
+
+ Extension to enable SelfPipeline, to configure a Markdown parsing/convertion to HTML automatically
+ from an embedded special tag in the input text <!--markdig:extensions--> where extensions is a string
+ that specifies the extensions to use for the pipeline as exposed by extension method
+ on the . This extension will invalidate all other extensions and will override them.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The matching start tag.
+ The default extensions.
+ Tag cannot contain angle brackets
+
+
+
+ Gets the default pipeline to configure if no tag was found in the input text. Default is null (core pipeline).
+
+
+
+
+ Gets the self pipeline hint tag start that will be matched.
+
+
+
+
+ Creates a pipeline automatically configured from an input markdown based on the presence of the configuration tag.
+
+ The input text.
+ The pipeline configured from the input
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+
+ An inline for SmartyPant.
+
+
+
+
+ Converts this instance to a literal text.
+
+
+
+
+
+ The options used for .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the mapping between a and its textual representation
+ (usually an HTML entity).
+
+
+
+
+ Extension to enable SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Types of a .
+
+
+
+
+ This is a single quote '
+
+
+
+
+ This is a left single quote ' -gt; lsquo;
+
+
+
+
+ This is a right single quote ' -gt; rsquo;
+
+
+
+
+ This is a double quote "
+
+
+
+
+ This is a left double quote " -gt; ldquo;
+
+
+
+
+ This is a right double quote " -gt; rdquo;
+
+
+
+
+ This is a right double quote << -gt; laquo;
+
+
+
+
+ This is a right angle quote >> -gt; raquo;
+
+
+
+
+ This is an ellipsis ... -gt; hellip;
+
+
+
+
+ This is a ndash -- -gt; ndash;
+
+
+
+
+ This is a mdash --- -gt; mdash;
+
+
+
+
+ Extension that allows to use grid tables.
+
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Internal state used by the
+
+
+
+
+ Gets or sets the index position of this column (after the |)
+
+
+
+
+ A HTML renderer for a
+
+
+
+
+
+ This block parsers for pipe tables is used to by-pass list items that could start by a single '-'
+ and would disallow to detect a pipe tables at inline parsing time, so we are basically forcing a line
+ that starts by a '-' and have at least a '|' (and have optional spaces) and is a continuation of a
+ paragraph.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The delimiter used to separate the columns of a pipe table.
+
+
+
+
+
+ Gets or sets the index of line where this delimiter was found relative to the current block.
+
+
+
+
+ Extension that allows to use pipe tables.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Options for the extension
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to require header separator. true by default (Kramdown is using false)
+
+
+
+
+ Defines whether table should be normalized to the amount of columns as defined in the table header.
+ false by default
+
+ If true, this will insert empty cells in rows with fewer tables than the header row and remove cells
+ that are exceeding the header column count.
+ If false, this will use the row with the most columns to determine how many cells should be inserted
+ in all other rows (default behavior).
+
+
+
+
+ Gets or sets a value indicating whether column widths should be inferred based on the number of dashes
+ in the header separator row. Each column's width will be proportional to the dash count in its respective column.
+
+
+
+
+ The inline parser used to transform a into a at inline parsing time.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line break parser to use
+ The options.
+
+
+
+ Gets the options.
+
+
+
+
+ Defines a table that contains an optional .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the column alignments. May be null.
+
+
+
+
+ Checks if the table structure is valid.
+
+ True if the table has rows and the number of cells per row is correct, other wise false.
+
+
+
+ Normalizes the number of columns of this table by taking the maximum columns and appending empty cells.
+
+
+
+
+ Normalizes the number of columns of this table by taking the amount of columns defined in the header
+ and appending empty cells or removing extra cells as needed.
+
+
+
+
+ Defines a cell in a
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the index of the column to which this cell belongs.
+
+
+
+
+ Gets or sets the column span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets the row span this cell is covering. Default is 1.
+
+
+
+
+ Gets or sets whether this cell can be closed.
+
+
+
+
+ Defines the alignment of a column
+
+
+
+
+ Align the column to the left
+
+
+
+
+ Align the column to the center
+
+
+
+
+ Align the column to the right
+
+
+
+
+ Defines a column.
+
+
+
+
+ Gets or sets the width (in percentage) of this column. A value of 0 is unspecified.
+
+
+
+
+ Gets or sets the column alignment.
+
+
+
+
+ Helper methods for parsing tables.
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+ The number of delimiters.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`).
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Parses a column header equivalent to the regexp: \s*:\s*[delimiterChar]+\s*:\s*
+
+ The text slice.
+ The delimiter character (either `-` or `=`). If `\0`, it will detect the character (either `-` or `=`)
+ The alignment of the column.
+
+ true if parsing was successful
+
+
+
+
+ Defines a row in a , contains , parent is .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether this instance is header row.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ An inline for TaskList.
+
+
+
+
+ Extension to enable TaskList.
+
+
+
+
+ The inline parser for SmartyPants.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the list class used for a task list.
+
+
+
+
+ Gets or sets the list item class used for a task list.
+
+
+
+
+ Extension that allows setting line-endings for any IMarkdownRenderer
+ that inherits from
+
+
+
+
+
+ A YAML frontmatter block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Extension to discard a YAML frontmatter at the beginning of a Markdown document.
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Empty renderer for a
+
+
+
+
+
+ Block parser for a YAML frontmatter.
+
+
+
+
+
+ Allows the to appear in the middle of the markdown file.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the front matter block.
+
+ The block processor
+ The front matter block
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Allows to associate characters to a data structures and query efficiently for them.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The states.
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ Helper class for handling characters.
+
+
+
+
+ Class used to simplify a unicode char to a simple ASCII string
+
+
+
+
+ Converts a unicode char to a simple ASCII string.
+
+ The input char.
+ The simple ASCII string or null if the char itself cannot be simplified
+
+
+
+ A compact insert-only key/value collection for fast prefix lookups
+ Something between a Trie and a full Radix tree, but stored linearly in memory
+
+ The value associated with the key
+
+
+
+ Used internally to control behavior of insertion
+ Copied from internals
+
+
+
+
+ The default insertion behavior. Does not overwrite or throw.
+
+
+
+
+ Specifies that an existing entry with the same key should be overwritten if encountered.
+
+
+
+
+ Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
+
+
+
+
+ The character this node represents, should never be 0
+
+
+
+
+ Will be 0 if this is a leaf node
+
+
+
+
+ Set to -1 if it does not point to a match
+
+
+
+
+ -1 if not present
+
+
+
+
+ Gets the number of nodes in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal tree structure buffer
+ You might be looking for
+
+
+
+
+ Gets the number of key/value pairs contained in the
+
+
+
+
+ Gets or sets the capacity of the internal key/value pair buffer
+
+
+
+
+ Gets the size of the children buffer in the internal tree structure
+ You might be looking for
+ Exposing this might help in deducing more efficient initial parameters
+
+
+
+
+ Gets or sets the capacity of the internal children buffer
+ You might be looking for
+
+
+
+
+ Constructs a new with no initial prefixes
+
+
+
+
+ Constructs a new with the supplied matches
+
+ Matches to initialize the with. For best lookup performance, this collection should be sorted.
+
+
+
+ Retrieves the key/value pair at the specified index (must be lower than )
+
+ Index of pair to get, must be lower than (the order is the same as the order in which the elements were added)
+ The key/value pair of the element at the specified index
+
+
+
+ Gets or sets the value associated with the specified key
+
+ The key of the value to get or set
+ The value of the element with the specified key
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The key/value pair of the element with the specified key
+
+
+
+ Adds the specified key/value pair to the
+
+ The key of the element to add
+ The value of the element to add
+
+
+
+ Adds the specified key/value pair to the
+
+ The key/value pair to add
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The key of the element to add
+ The value of the element to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to add the key/value pair to the if the key is not yet present
+
+ The pair to add
+ True if the element was added, false otherwise
+
+
+
+ Tries to find the longest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find a prefix of text, that is contained in this and is exactly text.Length characters long
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Tries to find the shortest prefix of text, that is contained in this
+
+ The text in which to search for the prefix
+ The found prefix and the corresponding value
+ True if a match was found, false otherwise
+
+
+
+ Determines whether the contains the specified key
+
+ The key to locate in this
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets the value associated with the specified key
+
+ The key of the value to get
+ The value associated with the specified key
+ True if the key is contained in this PrefixTree, false otherwise.
+
+
+
+ Gets a collection containing the keys in this
+
+
+
+
+ Gets a collection containing the values in this
+
+
+
+
+ Returns an Enumerator that iterates through the .
+ Use the index accessor instead ()
+
+
+
+
+
+ Enumerates the elements of a
+
+
+
+
+ Increments the internal index
+
+ True if the index is less than the length of the internal array
+
+
+
+ Gets the at the current position
+
+
+
+
+ Does nothing
+
+
+
+
+ Resets the internal index to the beginning of the array
+
+
+
+
+ A default object cache that expect the type {T} to provide a parameter less constructor
+
+ The type of item to cache
+
+
+
+
+ Helper class to decode an entity.
+
+
+
+
+ Decodes the given HTML entity to the matching Unicode characters.
+
+ The entity without & and ; symbols, for example, copy.
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Decodes the given UTF-32 character code to the matching set of UTF-16 characters.
+
+ The unicode character set or null if the entity was not recognized.
+
+
+
+ Source: http://www.w3.org/html/wg/drafts/html/master/syntax.html#named-character-references
+
+
+
+
+ Helper to parse several HTML tags.
+
+
+
+
+ Destructively unescape a string: remove backslashes before punctuation or symbol characters.
+
+ The string data that will be changed by unescaping any punctuation or symbol characters.
+ if set to true [remove back slash].
+
+
+
+
+ Scans an entity.
+ Returns number of chars matched.
+
+
+
+
+ Provides a common interface for iterating characters
+ over a or .
+
+
+
+
+ Gets the current start character position.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets the end character position.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Peeks at the next character, without incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ true if it has reaches the end of the iterator
+
+
+
+ A line reader from a that can provide precise source position
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ bufferSize cannot be <= 0
+
+
+
+ Gets the char position of the line. Valid for the next line before calling .
+
+
+
+
+ Reads a new line from the underlying and update the for the next line.
+
+ A new line or null if the end of has been reached
+
+
+
+ Helpers to parse Markdown links.
+
+
+
+
+ Represents a character or set of characters that represent a separation
+ between two lines of text
+
+
+
+
+ A simple object recycling system.
+
+ Type of the object to cache
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Clears this cache.
+
+
+
+
+ Gets a new instance.
+
+
+
+
+
+ Releases the specified instance.
+
+ The instance.
+ if instance is null
+
+
+
+ Creates a new instance of {T}
+
+ A new instance of {T}
+
+
+
+ Resets the specified instance when is called before storing back to this cache.
+
+ The instance.
+
+
+
+ A List that provides methods for inserting/finding before/after. See remarks.
+
+ Type of the list item
+
+ We use a typed list and don't use extension methods because it would pollute all list implements and the top level namespace.
+
+
+
+ Replaces with .
+
+ Item type to find in the list
+ Object to replace this item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Replaces with or adds .
+
+ Item type to find in the list
+ Object to add/replace the found item with
+ true if a replacement was made; otherwise false.
+
+
+
+ Removes the first occurrence of
+
+
+
+
+ A StringBuilder that can be used locally in a method body only.
+
+
+
+
+ Provides a string builder that can only be used locally in a method. This StringBuilder MUST not be stored.
+
+
+
+
+
+ Extensions for StringBuilder
+
+
+
+
+ Appends the specified slice to this instance.
+
+ The builder.
+ The slice.
+
+
+
+ A struct representing a text line.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The slice.
+ The line.
+ The column.
+ The position.
+ The line separation.
+
+
+
+ The slice used for this line.
+
+
+
+
+ The line position.
+
+
+
+
+ The position of the start of this line within the original source code
+
+
+
+
+ The column position.
+
+
+
+
+ The newline.
+
+
+
+
+ Performs an implicit conversion from to .
+
+ The line.
+
+ The result of the conversion.
+
+
+
+
+ A group of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ Gets the lines.
+
+
+
+
+ Gets the number of lines.
+
+
+
+
+ Clears this instance.
+
+
+
+
+ Removes the line at the specified index.
+
+ The index.
+
+
+
+ Adds the specified line to this instance.
+
+ The line.
+
+
+
+ Adds the specified slice to this instance.
+
+ The slice.
+
+
+
+ Converts the lines to a single by concatenating the lines.
+
+ The position of the `\n` line offsets from the beginning of the returned slice.
+ A single slice concatenating the lines of this instance
+
+
+
+ Converts this instance into a .
+
+
+
+
+
+ Trims each lines of the specified .
+
+
+
+
+ The iterator used to iterate other the lines.
+
+
+
+
+
+ A lightweight struct that represents a slice of a string.
+
+
+
+
+
+ An empty string slice.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The line separation.
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The text.
+ The start.
+ The end.
+ The line separation.
+
+
+
+
+ The text of this slice.
+
+
+
+
+ Gets or sets the start position within .
+
+
+
+
+ Gets or sets the end position (inclusive) within .
+
+
+
+
+ Gets the length.
+
+
+
+
+ Gets the current character.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+
+
+
+ Gets the at the specified index.
+
+ The index.
+ A character in the slice at the specified index (not from but from the begining of the slice)
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+ The next character. `\0` is end of the iteration.
+
+
+
+
+ Goes to the next character, incrementing the position.
+
+
+
+
+ Peeks a character at the offset of 1 from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current position
+ inside the range and , returns `\0` if outside this range.
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the string, without taking into account and
+
+ The character at offset, returns `\0` if none.
+
+
+
+ Peeks a character at the specified offset from the current beginning of the slice
+ without using the range or , returns `\0` if outside the .
+
+ The offset.
+ The character at offset, returns `\0` if none.
+
+
+
+ Matches the specified text.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Expect spaces until a end of line. Return false otherwise.
+
+ true if whitespaces where matched until a end of line
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Matches the specified text using lowercase comparison.
+
+ The text.
+ The end.
+ The offset.
+ true if the text matches; false otherwise
+
+
+
+ Searches the specified text within this slice.
+
+ The text.
+ The offset.
+ true if ignore case
+ true if the text was found; false otherwise
+
+
+
+ Searches for the specified character within this slice.
+
+ A value >= 0 if the character was found, otherwise < 0
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+
+ true if it has reaches the end of the iterator
+
+
+
+
+ Trims whitespaces at the beginning of this slice starting from position.
+
+ The number of spaces trimmed.
+
+
+
+ Trims whitespaces at the end of this slice, starting from position.
+
+
+
+
+
+ Trims whitespaces from both the start and end of this slice.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Determines whether this slice is empty or made only of whitespaces.
+
+ true if this slice is empty or made only of whitespaces; false otherwise
+
+
+
+ Inspired by CoreLib, taken from https://github.com/MihaZupan/SharpCollections, cc @MihaZupan
+
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
+ Base interface for an extension.
+
+
+
+
+ Setups this extension for the specified pipeline.
+
+ The pipeline.
+
+
+
+ Setups this extension for the specified renderer.
+
+ The pipeline used to parse the document.
+ The renderer.
+
+
+
+ Provides methods for parsing a Markdown string to a syntax tree and converting it to other formats.
+
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Normalizes the specified markdown to a normalized markdown text.
+
+ The markdown.
+ The destination that will receive the result of the conversion.
+ The normalize options
+ The pipeline.
+ A parser context used for the parsing.
+ A normalized markdown text.
+
+
+
+ Converts a Markdown string to HTML.
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown document to HTML.
+
+ A Markdown document.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ The HTML string.
+ If is null.
+
+
+
+ Converts a Markdown string to HTML and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string using a custom .
+
+ A Markdown text.
+ The renderer to convert Markdown to.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ if markdown or writer variable are null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Parses the specified markdown into an AST
+
+ The markdown text.
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if markdown variable is null
+
+
+
+ Converts a Markdown string to Plain text and output to the specified writer.
+
+ A Markdown text.
+ The destination that will receive the result of the conversion.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The Markdown document that has been parsed
+ if reader or writer variable are null
+
+
+
+ Converts a Markdown string to Plain text by using a .
+
+ A Markdown text.
+ The pipeline used for the conversion.
+ A parser context used for the parsing.
+ The result of the conversion
+ if markdown variable is null
+
+
+
+ Provides extension methods for to enable several Markdown extensions.
+
+
+
+
+ Adds the specified extension to the extensions collection.
+
+ The type of the extension.
+ The instance of
+
+
+
+ Adds the specified extension instance to the extensions collection.
+
+ The pipeline.
+ The instance of the extension to be added.
+ The type of the extension.
+ The modified pipeline
+
+
+
+ Uses all extensions except the BootStrap, Emoji, SmartyPants and soft line as hard line breaks extensions.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses this extension to enable alert blocks.
+
+ The pipeline.
+ Replace the default renderer for the kind with a custom renderer
+ The modified pipeline
+
+
+
+ Uses this extension to enable autolinks from text `http://`, `https://`, `ftp://`, `mailto:`, `www.xxx.yyy`
+
+ The pipeline.
+ The options.
+ The modified pipeline
+
+
+
+ Uses this extension to disable URI escape with % characters for non-US-ASCII characters in order to workaround a bug under IE/Edge with local file links containing non US-ASCII chars. DO NOT USE OTHERWISE.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses YAML frontmatter extension that will parse a YAML frontmatter into the MarkdownDocument. Note that they are not rendered by any default HTML renderer.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the self pipeline extension that will detect the pipeline to use from the markdown input that contains a special tag. See
+
+ The pipeline.
+ The default tag to use to match the self pipeline configuration. By default, , meaning that the HTML tag will be <--markdig:extensions-->
+ The default extensions to configure if no pipeline setup was found from the Markdown document
+ The modified pipeline
+
+
+
+ Uses pragma lines to output span with an id containing the line number (pragma-line#line_number_zero_based`)
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the diagrams extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses precise source code location (useful for syntax highlighting).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the task list extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom container extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the media extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the auto-identifier extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the SmartyPants extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the bootstrap extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the math extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the figure extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the custom abbreviation extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the definition lists extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the pipe table extension.
+
+ The pipeline.
+ The options.
+
+ The modified pipeline
+
+
+
+
+ Uses the grid table extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the cite extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footer extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the footnotes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the softline break as hardline break extension
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the strikethrough superscript, subscript, inserted and marked text extensions.
+
+ The pipeline.
+ The options to enable.
+
+ The modified pipeline
+
+
+
+
+ Uses the list extra extension to add support for `a.`, `A.`, `i.` and `I.` ordered list items.
+
+ The pipeline.
+
+ The modified pipeline
+
+
+
+
+ Uses the generic attributes extension.
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable smileys in addition to emoji shortcodes, true by default.
+ The modified pipeline
+
+
+
+ Uses the emojis and smileys extension.
+
+ The pipeline.
+ Enable customization of the emojis and smileys mapping.
+ The modified pipeline
+
+
+
+ Add rel=nofollow to all links rendered to HTML.
+
+
+
+
+
+
+ Automatically link references to JIRA issues
+
+ The pipeline
+ Set of required options
+ The modified pipeline
+
+
+
+ Adds support for right-to-left content by adding appropriate html attribtues.
+
+ The pipeline
+ The modified pipeline
+
+
+
+ This will disable the HTML support in the markdown processor (for constraint/safe parsing).
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Configures the pipeline using a string that defines the extensions to activate.
+
+ The pipeline (e.g: advanced for , pipetables+gridtables for and
+ The extensions to activate as a string
+ The modified pipeline
+
+
+
+ Configures the string to be used for line-endings, when writing.
+
+ The pipeline.
+ The string to be used for line-endings.
+ The modified pipeline
+
+
+
+ Disables parsing of ATX and Setex headings
+
+ The pipeline.
+ The modified pipeline
+
+
+
+ Enables parsing and tracking of trivia characters
+
+ The pipeline.
+ he modified pipeline
+
+
+
+ Provides a context that can be used as part of parsing Markdown documents.
+
+
+
+
+ Gets or sets the context property collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ This class is the Markdown pipeline build from a .
+ An instance of is immutable, thread-safe, and should be reused when parsing multiple inputs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The read-only list of extensions used to build this pipeline.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Allows to setup a .
+
+ The markdown renderer to setup
+
+
+
+ This class allows to modify the pipeline to parse and render a Markdown document.
+
+ NOTE: A pipeline is not thread-safe.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the block parsers.
+
+
+
+
+ Gets the inline parsers.
+
+
+
+
+ Gets the register extensions.
+
+
+
+
+ Gets or sets a value indicating whether to enable precise source location (slower parsing but accurate position for block and inline elements)
+
+
+
+
+ Gets or sets the debug log.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Occurs when a document has been processed after the method.
+
+
+
+
+ Builds a pipeline from this instance. Once the pipeline is build, it cannot be modified.
+
+ An extension cannot be null
+
+
+
+ Delegates called when processing a block
+
+
+
+
+ Base class for a parser of a
+
+
+
+
+
+ Determines whether the specified char is an opening character.
+
+ The character.
+ true if the specified char is an opening character.
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ A List of .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parsers.
+
+
+
+ The block processor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document to build blocks into.
+ The list of parsers.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the new blocks to push. A is required to push new blocks that it creates to this property.
+
+
+
+
+ Gets the list of s configured with this parser state.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the current active container.
+
+
+
+
+ Gets the last block that is opened.
+
+
+
+
+ Gets the last block that is created.
+
+
+
+
+ Gets the next block in a .
+
+
+
+
+ Gets the root document.
+
+
+
+
+ The current line being processed.
+
+
+
+
+ Gets or sets the current line start position.
+
+
+
+
+ Gets the index of the line in the source text.
+
+
+
+
+ Gets a value indicating whether the line is blank (valid only after has been called).
+
+
+
+
+ Gets the current character being processed.
+
+
+
+
+ Gets or sets the column.
+
+
+
+
+ Gets the position of the current character in the line being processed.
+
+
+
+
+ Gets the current indent position (number of columns between the previous indent and the current position).
+
+
+
+
+ Gets a value indicating whether a code indentation is at the beginning of the line being processed.
+
+
+
+
+ Gets the column position before the indent occurred.
+
+
+
+
+ Gets the character position before the indent occurred.
+
+
+
+
+ Gets a boolean indicating whether the current line being parsed is lazy continuation.
+
+
+
+
+ Gets the current stack of being processed.
+
+
+
+
+ Gets or sets the position of the first character trivia is encountered
+ and not yet assigned to a syntax node.
+ Trivia: only used when is enabled, otherwise 0.
+
+
+
+
+ Returns trivia that has not yet been assigned to any node and
+ advances the position of trivia to the ending position.
+
+ End position of the trivia
+
+
+
+
+ Returns the current stack of to assign it to a .
+ Afterwards, the is set to null.
+
+
+
+
+ Gets or sets the stack of empty lines not yet assigned to any .
+ An entry may contain an empty . In that case the
+ is relevant. Otherwise, the
+ entry will contain trivia.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Get the current Container that is currently opened
+
+ The current Container that is currently opened
+
+
+
+ Returns the next character in the line being processed. Update and .
+
+ The next character or `\0` if end of line is reached
+
+
+
+ Returns the next character in the line taking into space taken by tabs. Update and .
+
+
+
+
+ Peeks a character at the specified offset from the current position in the line.
+
+ The offset.
+ A character peeked at the specified offset
+
+
+
+ Restarts the indent from the current position.
+
+
+
+
+ Parses the indentation from the current position in the line, updating ,
+ , and accordingly
+ taking into account space taken by tabs.
+
+
+
+
+ Moves to the position to the specified column position, taking into account spaces in tabs.
+
+ The new column position to move the cursor to.
+
+
+
+ Unwind any previous indent from the current character back to the first space.
+
+
+
+
+ Moves to the position to the code indent ( + 4 spaces).
+
+ The column offset to apply to this indent.
+
+
+
+ Opens the specified block.
+
+ The block.
+
+ The block must be opened
+
+
+
+ Force closing the specified block.
+
+ The block.
+
+
+
+ Discards the specified block from the stack, remove from its parent.
+
+ The block.
+
+
+
+ Processes a new line.
+
+ The new line.
+
+
+
+ Closes a block at the specified index.
+
+ The index.
+
+
+
+ Closes all the blocks opened.
+
+ if set to true [force].
+
+
+
+ Mark all blocks in the stack as opened.
+
+
+
+
+ Updates the and .
+
+ Index of a block in a stack considered as the last block to update from.
+
+
+
+ Tries to continue matching existing opened .
+
+
+ A pending parser cannot add a new block when it is not the last pending block
+ or
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+
+ First phase of the process, try to open new blocks.
+
+
+
+
+ Tries to open new blocks using the specified list of
+
+ The parsers.
+ true to continue processing the current line
+
+
+
+ Processes any new blocks that have been pushed to .
+
+ The last result of matching.
+ if set to true the processing of a new block will close existing opened blocks].
+ The NewBlocks is not empty. This is happening if a LeafBlock is not the last to be pushed
+
+
+
+ Defines the result of parsing a line for a .
+
+
+
+
+ A line is not accepted by this parser.
+
+
+
+
+ The parser is skipped.
+
+
+
+
+ The parser accepts a line and instruct to continue.
+
+
+
+
+ The parser accepts a line, instruct to continue but discard the line (not stored on the block)
+
+
+
+
+ The parser is ending a block, instruct to stop and keep the line being processed.
+
+
+
+
+ The parser is ending a block, instruct to stop and discard the line being processed.
+
+
+
+
+ Extensions used by .
+
+
+
+
+ Determines whether this is discarded.
+
+ State of the block.
+ true if the block state is in discard state
+
+
+
+ Determines whether this is in a continue state.
+
+ State of the block.
+ true if the block state is in continue state
+
+
+
+ Determines whether this is in a break state.
+
+ State of the block.
+ true if the block state is in break state
+
+
+
+ Delegate used to parse the string on the first line after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The being processed line.
+ The fenced code block.
+ The opening character for the fenced code block (usually ` or ~)
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Gets or sets the information parser.
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base parser for fenced blocks (opened by 3 or more character delimiters on a first line, and closed by at least the same number of delimiters)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the language prefix (default is "language-")
+
+
+
+
+ The roundtrip parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ The default parser for the information after the fenced code block special characters (usually ` or ~)
+
+ The parser processor.
+ The line.
+ The fenced code block.
+ The opening character for this fenced code block.
+ true if parsing of the line is successfull; false otherwise
+
+
+
+ Parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the max count of the leading unescaped # characters
+
+
+
+
+ A delegates that allows to process attached attributes after #
+
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A delegates that allows to process attached attributes at time.
+
+ The processor.
+ The slice to look for attached attributes.
+ The block.
+ true if attributes were found; otherwise false
+
+
+
+ An interface used to tag that supports parsing
+
+
+
+
+ A delegates that allows to process attached attributes
+
+
+
+
+ Base interface for a .
+
+
+
+
+
+
+ Determines whether this instance can interrupt the specified block being processed.
+
+ The parser processor.
+ The block being processed.
+ true if this parser can interrupt the specified block being processed.
+
+
+
+ Tries to match a block opening.
+
+ The parser processor.
+ The result of the match
+
+
+
+ Tries to continue matching a block already opened.
+
+ The parser processor.
+ The block already opened.
+ The result of the match. By default, don't expect any newline
+
+
+
+ Called when a block matched by this parser is being closed (to allow final computation on the block).
+
+ The parser processor.
+ The block being closed.
+ true to keep the block; false to remove it. True by default.
+
+
+
+ Base interface for parsing an .
+
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ Base interface for a block or inline parser.
+
+ The type of processor.
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Block parser for an indented .
+
+
+
+
+
+ Base class for parsing an .
+
+
+
+
+
+ Tries to match the specified slice.
+
+ The parser processor.
+ The text slice.
+ true if this parser found a match; false otherwise
+
+
+
+ A list of .
+
+
+
+
+
+ Gets the registered post inline processors.
+
+
+
+
+ A delegate called at inline processing stage.
+
+ The processor.
+ The inline being processed.
+
+
+
+ The inline parser state used by all .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The document.
+ The parsers.
+ A value indicating whether to provide precise source location.
+ A parser context used for the parsing.
+ Whether to parse trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+
+
+ Gets the current block being processed.
+
+
+
+
+ Gets a value indicating whether to provide precise source location.
+
+
+
+
+ Gets or sets the new block to replace the block being processed.
+
+
+
+
+ Gets or sets the current inline. Used by to return a new inline if match was successfull
+
+
+
+
+ Gets the root container of the current .
+
+
+
+
+ Gets the list of inline parsers.
+
+
+
+
+ Gets the parser context or null if none is available.
+
+
+
+
+ Gets the root document.
+
+
+
+
+ Gets or sets the index of the line from the begining of the document being processed.
+
+
+
+
+ Gets the parser states that can be used by using their property.
+
+
+
+
+ Gets or sets the debug log writer. No log if null.
+
+
+
+
+ True to parse trivia such as whitespace, extra heading characters and unescaped
+ string values.
+
+
+
+
+ Gets the literal inline parser.
+
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The line index.
+ The column.
+ The source position
+
+
+
+ Gets the source position for the specified offset within the current slice.
+
+ The slice offset.
+ The source position
+
+
+
+ Replace a parent container. This method is experimental and should be used with caution.
+
+ The previous parent container to replace
+ The new parent container
+ If a new parent container has been already setup.
+
+
+
+ Processes the inline of the specified .
+
+ The leaf block.
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to enable HTML parsing. Default is true
+
+
+
+
+ An inline parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Descriptor for an emphasis.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The character used for this emphasis.
+ The minimum number of character.
+ The maximum number of characters.
+ if set to true the emphasis can be used inside a word.
+
+
+
+ The character of this emphasis.
+
+
+
+
+ The minimum number of character this emphasis is expected to have (must be >=1)
+
+
+
+
+ The maximum number of character this emphasis is expected to have (must be >=1 and >= minimumCount)
+
+
+
+
+ This emphasis can be used within a word.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the emphasis descriptors.
+
+
+
+
+ Determines whether this parser is using the specified character as an emphasis delimiter.
+
+ The character to look for.
+ true if this parser is using the specified character as an emphasis delimiter; otherwise false
+
+
+
+ Gets or sets the create emphasis inline delegate (allowing to create a different emphasis inline class)
+
+
+
+
+ An inline parser for escape characters.
+
+
+
+
+
+ An inline parser for HTML entities.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether to interpret softline breaks as hardline breaks. Default is false
+
+
+
+
+ An inline parser for .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An inline parser for parsing .
+
+
+
+
+
+ We don't expect the LiteralInlineParser to be instantiated a end-user, as it is part
+ of the default parser pipeline (and should always be the last), working as a literal character
+ collector.
+
+
+
+
+ Gets or sets the post match delegate called after the inline has been processed.
+
+
+
+
+ A processor called at the end of processing all inlines.
+
+
+
+
+ Processes the delimiters.
+
+ The parser state.
+ The root inline.
+ The last child.
+ Index of this delimiter processor.
+
+ true to continue to the next delimiter processor;
+ false to stop the process (in case a processor is performing sub-sequent processor itself)
+
+
+
+ A parser for a list block and list item block.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the parsers for items.
+
+
+
+
+ Defines list information returned when trying to parse a list item with
+
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+ Initializes a new instance of the struct.
+
+ Type of the bullet (e.g: '1', 'a', 'A', 'i', 'I')
+ The string used as a starting sequence for an ordered list.
+ The ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+ The default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+ Gets or sets the type of the bullet (e.g: '1', 'a', 'A', 'i', 'I').
+
+
+
+
+ Gets or sets the string used as a starting sequence for an ordered list
+
+
+
+
+ Gets or sets the ordered delimiter found when parsing this list (e.g: the character `)` after `1)`)
+
+
+
+
+ Gets or sets default string used as a starting sequence for the ordered list (e.g: '1' for an numbered ordered list)
+
+
+
+
+ A parser base class for a list item.
+
+
+
+
+ Defines the characters that are used for detecting this list item.
+
+
+
+
+ Tries to parse the current input as a list item for this particular instance.
+
+ The block processor
+ The type of the current bullet type
+ The result of parsing
+ true if parsing was successful; false otherwise
+
+
+
+ Delegates called when processing a document
+
+ The markdown document.
+
+
+
+ The Markdown parser.
+
+
+
+
+ Parses the specified markdown into an AST
+
+ A Markdown text
+ The pipeline used for the parsing.
+ A parser context used for the parsing.
+ An AST Markdown document
+ if reader variable is null
+
+
+
+ Fixups the zero character by replacing it to a secure character (Section 2.3 Insecure characters, CommonMark specs)
+
+ The text to secure.
+
+
+
+ The default parser for parsing numbered list item (e.g: 1) or 1.)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for an ordered list item parser.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the ordered delimiters used after a digit/number (by default `.` and `)`)
+
+
+
+
+ Utility method that tries to parse the delimiter coming after an ordered list start (e.g: the `)` after `1)`).
+
+ The state.
+ The ordered delimiter found if this method is successful.
+ true if parsing was successful; false otherwise.
+
+
+
+ Block parser for a .
+
+
+
+
+
+ Base class for a or .
+
+ Type of the parser processor
+
+
+
+
+ Gets the opening characters this parser will be triggered if the character is found.
+
+
+
+
+ Initializes this parser with the specified parser processor.
+
+
+
+
+ Gets the index of this parser in or .
+
+
+
+
+ Base class for a list of parsers.
+
+ Type of the parser
+ The type of the parser state.
+
+
+
+
+ Gets the list of global parsers (that don't have any opening characters defined)
+
+
+
+
+ Gets all the opening characters defined.
+
+
+
+
+ Gets the list of parsers valid for the specified opening character.
+
+ The opening character.
+ A list of parsers valid for the specified opening character or null if no parsers registered.
+
+
+
+ Searches for an opening character from a registered parser in the specified string.
+
+ The text.
+ The start.
+ The end.
+ Index position within the string of the first opening character found in the specified text; if not found, returns -1
+
+
+
+ A block parser for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A block parser for a .
+
+
+
+
+
+ A singleton instance used by other parsers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The default parser used to parse unordered list item (-, +, *)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ An HTML renderer for a and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a map of fenced code block infos that should be rendered as div blocks instead of pre/code blocks.
+
+
+
+
+ Gets a map of custom block mapping to render as custom blocks instead of pre/code blocks.
+ For example defining {"mermaid", "pre"} will render a block with info `mermaid` as a `pre` block but without the code HTML element.
+
+
+
+
+ An HTML renderer for a .
+
+
+
+
+
+ Attached HTML attributes to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the HTML id/identifier. May be null.
+
+
+
+
+ Gets or sets the CSS classes attached. May be null.
+
+
+
+
+ Gets or sets the additional properties. May be null.
+
+
+
+
+ Adds a CSS class.
+
+ The css class name.
+
+
+
+ Adds a property.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified property only if it does not already exist.
+
+ The name.
+ The value.
+
+
+
+ Copies/merge the values from this instance to the specified instance.
+
+ The HTML attributes.
+ If set to true it will merge properties to the target htmlAttributes. Default is false
+ If set to true it will try to share Classes and Properties if destination don't have them, otherwise it will make a copy. Default is true
+
+
+
+
+ Extensions for a to allow accessing
+
+
+
+
+ Tries the get stored on a .
+
+ The markdown object.
+ The attached html attributes or null if not found
+
+
+
+ Gets or creates the stored on a
+
+ The markdown object.
+ The attached html attributes
+
+
+
+ Sets to the
+
+ The markdown object.
+ The attributes to attach.
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A base class for HTML rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for an .
+
+
+
+
+
+ Delegates to get the tag associated to an object.
+
+ The object.
+ The HTML tag associated to this object
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the GetTag delegate.
+
+
+
+
+ Gets the default HTML tag for ** and __ emphasis.
+
+ The object.
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a HTML hardline break tag (<br />)
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to always add rel="nofollow" for links or not.
+
+
+
+
+ Gets or sets the literal string in property rel for links
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ A HTML renderer for a .
+
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some inline elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to output HTML tags when rendering. See remarks.
+
+
+ This is used by some renderers to disable HTML tags when rendering some block elements (for image links).
+
+
+
+
+ Gets or sets a value indicating whether to use implicit paragraph (optional <p>)
+
+
+
+
+ Gets a value to use as the base url for all relative links
+
+
+
+
+ Allows links to be rewritten
+
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The slice.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ The offset.
+ The length.
+ Only escape < and &
+ This instance
+
+
+
+ Writes the content escaped for HTML.
+
+ The content.
+ Only escape < and &
+
+
+
+ Writes the URL escaped for HTML.
+
+ The content.
+ This instance
+
+
+
+ Writes the attached on the specified .
+
+ The object.
+
+
+
+
+ Writes the specified .
+
+ The attributes to render.
+ A class filter used to transform a class into another class at writing time
+ This instance
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ if set to true escape the content for HTML
+ Only escape < and &
+ This instance
+
+
+
+ Base interface for the renderer of a .
+
+
+
+
+ Accepts the specified .
+
+ The renderer.
+ The of the Markdown object.
+ true If this renderer is accepting to render the specified Markdown object
+
+
+
+ Writes the specified to the .
+
+ The renderer.
+ The object to render.
+
+
+
+ Base interface for a renderer for a Markdown .
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Gets the object renderers that will render and elements.
+
+
+
+
+ Renders the specified markdown object.
+
+ The markdown object.
+ The result of the rendering.
+
+
+
+ A base class for rendering and Markdown objects.
+
+ The type of the renderer.
+ The type of the object.
+
+
+
+
+ Gets the optional writers attached to this instance.
+
+
+
+
+ Writes the specified Markdown object to the renderer.
+
+ The renderer.
+ The markdown object.
+
+
+
+ An Normalize renderer for a and .
+
+
+
+
+
+ An Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ Gets or sets a value indicating whether to render this softline break as a Normalize hardline break tag (<br />)
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Defines the options used by
+
+
+
+
+ Initialize a new instance of
+
+
+
+
+ Adds a space after a QuoteBlock >. Default is true
+
+
+
+
+ Adds an empty line after a code block (fenced and tabbed). Default is true
+
+
+
+
+ Adds an empty line after an heading. Default is true
+
+
+
+
+ Adds an empty line after an thematic break. Default is true
+
+
+
+
+ The bullet character used for list items. Default is null leaving the original bullet character as-is.
+
+
+
+
+ Expands AutoLinks to the normal inline representation. Default is true
+
+
+
+
+ Default HTML renderer for a Markdown object.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+ The normalize options
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ if set to true write end of lines.
+ Whether to write indents.
+ This instance
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A collection of .
+
+
+
+
+
+ Base class for a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Occurs when before writing an object.
+
+
+
+
+ Occurs when after writing an object.
+
+
+
+
+ Writes the children of the specified .
+
+ The container block.
+
+
+
+ Writes the children of the specified .
+
+ The container inline.
+
+
+
+ Writes the specified Markdown object.
+
+ The Markdown object to write to this renderer.
+
+
+
+ An Roundtrip renderer for a and .
+
+
+
+
+
+ An Roundtrip renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for an .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Normalize renderer for a .
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+ A base class for Normalize rendering and Markdown objects.
+
+ The type of the object.
+
+
+
+
+ Markdown renderer honoring trivia for a object.
+
+ Ensure to call the extension method when
+ parsing markdown to have trivia available for rendering.
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Writes the lines of a
+
+ The leaf block.
+ This instance
+
+
+
+ A Roundtrip renderer for a .
+
+
+
+
+
+ A text based .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+
+ Gets or sets the writer.
+
+ if the value is null
+
+
+
+ Renders the specified markdown object (returns the as a render object).
+
+ The markdown object.
+
+
+
+
+ Typed .
+
+ Type of the renderer
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Ensures a newline.
+
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified char repeated a specified number of times.
+
+ The char to write.
+ The number of times to write the char.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified slice.
+
+ The slice.
+ This instance
+
+
+
+ Writes the specified character.
+
+ The content.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+ The offset.
+ The length.
+ This instance
+
+
+
+ Writes the specified content.
+
+ The content.
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a newline.
+
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes a content followed by a newline.
+
+ The content.
+ This instance
+
+
+
+ Writes the inlines of a leaf inline.
+
+ The leaf block.
+ This instance
+
+
+
+ A blank line, used internally by some parsers to store blank lines in a container. They are removed before the end of the document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Base class for a block structure. Either a or a .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ The last newline of this block.
+ Trivia: only parsed when is enabled
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Gets or sets the trivia right before this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets trivia occurring after this block.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the empty lines occurring before this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Gets or sets the empty lines occurring after this block.
+ Trivia: only parsed when is enabled, otherwise null.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Called when the process of inlines begin.
+
+ The inline parser state.
+
+
+
+ Called when the process of inlines ends.
+
+ The inline parser state.
+
+
+
+ Extensions for
+
+
+
+
+ Helpers for the class.
+
+
+
+
+ Represents an indented code block.
+
+
+ Related to CommonMark spec: 4.4 Indented code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ A base class for container blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets the last child.
+
+
+
+
+ Specialize enumerator.
+
+
+
+
+
+ Represents a fenced code block.
+
+
+ Related to CommonMark spec: 4.5 Fenced code blocks
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the indent count when the fenced code block was indented
+ and we need to remove up to indent count chars spaces from the beginning of a line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a heading.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the header character used to defines this heading (usually #)
+
+
+
+
+ Gets or sets the level of heading (starting at 1 for the lowest level).
+
+
+
+
+ True if this heading is a Setext heading.
+
+
+
+
+ Gets or sets the amount of - or = characters when is true.
+
+
+
+
+ Gets or sets the newline of the first line when is true.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the whitespace after the # character when is false.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Represents a group of lines that is treated as raw HTML (and will not be escaped in HTML output).
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+
+
+
+ Gets or sets the type of block.
+
+
+
+
+ Defines the type of
+
+
+
+
+ A SGML document type starting by <!LETTER.
+
+
+
+
+ A raw CDATA sequence.
+
+
+
+
+ A HTML comment.
+
+
+
+
+ A SGM processing instruction tag <?
+
+
+
+
+ A script pre or style tag.
+
+
+
+
+ An HTML interrupting block
+
+
+
+
+ An HTML non-interrupting block
+
+
+
+
+ Base interface for a block structure. Either a or a .
+
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ Gets the parent of this container. May be null.
+
+
+
+
+ Gets the parser associated to this instance.
+
+
+
+
+ Gets or sets a value indicating whether this instance is still open.
+
+
+
+
+ Gets or sets a value indicating whether this block is breakable. Default is true.
+
+
+
+
+ Gets or sets a value indicating whether this block must be removed from its container after inlines have been processed.
+
+
+
+
+ Occurs when the process of inlines begin.
+
+
+
+
+ Occurs when the process of inlines ends for this instance.
+
+
+
+
+ Trivia occurring before this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ Trivia occurring after this block
+
+ Trivia: only parsed when is enabled, otherwise .
+
+
+
+ A common interface for fenced block (e.g: or )
+
+
+
+
+ Gets or sets the fenced character used to open and close this fenced code block.
+
+
+
+
+ Gets or sets the fenced character count used to open this fenced code block.
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the language parsed after the first line of
+ the fenced code block. May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the arguments after the .
+ May be null.
+
+
+
+
+ Non-escaped exactly as in source markdown.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Newline of the line with the opening fenced chars.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Trivia before the closing fenced chars
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the fenced character count used to close this fenced code block.
+
+
+
+
+ Newline after the last line, which is always the line containing the closing fence chars.
+ "Inherited" from .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Base interface for a the Markdown syntax tree
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ An autolink (Section 6.7 CommonMark specs)
+
+
+
+
+
+ Gets or sets a value indicating whether this instance is an email link.
+
+
+
+
+ Gets or sets the URL of this link.
+
+
+
+
+ Represents a code span (Section 6.3 CommonMark specs)
+
+
+
+
+
+ Gets or sets the delimiter character used by this code inline.
+
+
+
+
+ Gets or sets the amount of delimiter characters used
+
+
+
+
+ Gets or sets the content of the span.
+
+
+
+
+ Gets or sets the content with trivia and whitespace.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A base class for container for .
+
+
+
+
+
+ Gets the parent block of this inline.
+
+
+
+
+ Gets the first child.
+
+
+
+
+ Gets the last child.
+
+
+
+
+ Clears this instance by removing all its children.
+
+
+
+
+ Appends a child to this container.
+
+ The child to append to this container..
+ This instance
+ If child is null
+ Inline has already a parent
+
+
+
+ Checks if this instance contains the specified child.
+
+ The child to find.
+ true if this instance contains the specified child; false otherwise
+
+
+
+ Finds all the descendants.
+
+ Type of the descendants to find
+ An enumeration of T
+
+
+
+ Moves all the children of this container after the specified inline.
+
+ The parent.
+
+
+
+ Embraces this instance by the specified container.
+
+ The container to use to embrace this instance.
+ If the container is null
+
+
+
+ Internal delimiter used by some parsers (e.g emphasis, tables).
+
+
+
+
+
+ Gets the parser.
+
+
+
+
+ Gets or sets the type of this delimiter.
+
+
+
+
+ Gets or sets a value indicating whether this instance is active.
+
+
+
+
+ Converts this delimiter to a literal.
+
+ The string representation of this delimiter
+
+
+
+ Gets the type of a .
+
+
+
+
+ An undefined open or close delimiter.
+
+
+
+
+ An open delimiter.
+
+
+
+
+ A close delimiter.
+
+
+
+
+ A delimiter used for parsing emphasis.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser.
+ The descriptor.
+ The content.
+
+
+
+
+ Gets the descriptor for this emphasis.
+
+
+
+
+ The delimiter character found.
+
+
+
+
+ The number of delimiter characters found for this delimiter.
+
+
+
+
+ The content as a .
+
+
+
+
+ An emphasis and strong emphasis (Section 6.4 CommonMark specs).
+
+
+
+
+
+ Gets or sets the delimiter character of this emphasis.
+
+
+
+
+ Gets or sets a value indicating whether this is strong.
+ Marked obsolete as EmphasisInline can now be represented by more than two delimiter characters
+
+
+
+
+ Gets or sets the number of delimiter characters for this emphasis.
+
+
+
+
+ An entity HTML.
+
+
+
+
+
+ Gets or sets the original HTML entity name
+
+
+
+
+ Gets or sets the transcoded literal that will be used for output
+
+
+
+
+ A Raw HTML (Section 6.8 CommonMark specs).
+
+
+
+
+
+ Gets or sets the full declaration of this tag.
+
+
+
+
+ Base interface for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Base class for all syntax tree inlines.
+
+
+
+
+
+ Gets the parent container of this inline.
+
+
+
+
+ Gets the previous inline.
+
+
+
+
+ Gets the next sibling inline.
+
+
+
+
+ Gets or sets a value indicating whether this instance is closed.
+
+
+
+
+ Inserts the specified inline after this instance.
+
+ The inline to insert after this instance.
+
+ Inline has already a parent
+
+
+
+ Inserts the specified inline before this instance.
+
+ The inline previous to insert before this instance.
+
+ Inline has already a parent
+
+
+
+ Removes this instance from the current list and its parent
+
+
+
+
+ Replaces this inline by the specified inline.
+
+ The inline.
+ if set to true the children of this instance are copied to the specified inline.
+ The last children
+ If inline is null
+
+
+
+ Determines whether this instance contains a parent of the specified type.
+
+ Type of the parent to check
+ true if this instance contains a parent of the specified type; false otherwise
+
+
+
+ Iterates on parents of the specified type.
+
+ Type of the parent to iterate over
+ An enumeration on the parents of the specified type
+
+
+
+ Dumps this instance to .
+
+ The writer.
+
+
+
+
+ Dumps this instance to .
+
+ The writer.
+ The level of indent.
+ if writer is null
+
+
+
+ A base class for a leaf inline.
+
+
+
+
+
+ A base class for a line break.
+
+
+
+
+
+ A delimiter for a link.
+
+
+
+
+
+ Gets or sets a value indicating whether this delimiter is an image link.
+
+
+
+
+ Gets or sets the label of this link.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ A Link inline (Section 6.5 CommonMark specs)
+
+
+
+
+
+ A delegate to use if it is setup on this instance to allow late binding
+ of a Url.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The URL.
+ The title.
+
+
+
+ Gets or sets a value indicating whether this instance is an image link.
+
+
+
+
+ Gets or sets the label.
+
+
+
+
+ The label span
+
+
+
+
+ Gets or sets the with trivia.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the type of label parsed
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the reference this link is attached to. May be null.
+
+
+
+
+ Gets or sets the label as matched against the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the with trivia as matched against
+ the
+
+
+
+
+ Gets or sets the trivia before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True if the in the source document is enclosed
+ in pointy brackets.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL source span.
+
+
+
+
+ The but with trivia and unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Any trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the GetDynamicUrl delegate. If this property is set,
+ it is used instead of to get the Url from this instance.
+
+
+
+
+ Gets or sets the character used to enclose the .
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title source span.
+
+
+
+
+ Gets or sets the exactly as parsed from the
+ source document including unescaped characters
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the trivia after the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets a boolean indicating if this link is a shortcut link to a
+
+
+
+
+ Gets or sets a boolean indicating whether the inline link was parsed using markdown syntax or was automatic recognized.
+
+
+
+
+ A literal inline.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The content.
+
+
+
+ Initializes a new instance of the class.
+
+ The text.
+
+
+
+
+ The content as a .
+
+
+
+
+ A boolean indicating whether the first character of this literal is escaped by `\`.
+
+
+
+
+ Base class for all leaf blocks.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the string lines accumulated for this leaf block.
+ May be null after process inlines have occurred.
+
+
+
+
+ Gets or sets the inline syntax tree (may be null).
+
+
+
+
+ Gets or sets a value indicating whether must be processed
+ as inline into the property.
+
+
+
+
+ Appends the specified line to this instance.
+
+ The slice.
+ The column.
+ The line.
+
+ Whether to keep track of trivia such as whitespace, extra heading characters and unescaped string values.
+
+
+
+ A link reference definition (Section 4.7 CommonMark specs)
+
+
+
+
+
+ Creates an inline link for the specified .
+
+ State of the inline.
+ The link reference.
+ The child.
+ An inline link or null to use the default implementation
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The label.
+ The URL.
+ The title.
+
+
+
+ Gets or sets the label. Text is normalized according to spec.
+
+ https://spec.commonmark.org/0.29/#matches
+
+
+
+ The label span
+
+
+
+
+ Non-normalized Label (includes trivia)
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Whitespace before the .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the URL.
+
+
+
+
+ The URL span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ True when the is enclosed in point brackets in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ false.
+
+
+
+
+ gets or sets the whitespace before a .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ The title span
+
+
+
+
+ Non-normalized .
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ Gets or sets the character the is enclosed in.
+ Trivia: only parsed when is enabled, otherwise \0.
+
+
+
+
+ Gets or sets the create link inline callback for this instance.
+
+
+ This callback is called when an inline link is matching this reference definition.
+
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+ true if parsing is successful; false otherwise
+
+
+
+ Tries to the parse the specified text into a definition.
+
+ Type of the text
+ The text.
+ The block.
+
+
+
+
+
+
+
+ true if parsing is successful; false otherwise
+
+
+
+ Extension methods for accessing attached at the document level.
+
+
+
+
+ Contains all the found in a document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets an association between a label and the corresponding
+
+
+
+
+ A list (Section 5.3 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets a value indicating whether the list is ordered.
+
+
+
+
+ Gets or sets the bullet character used by this list.
+
+
+
+
+ Gets or sets the ordered start number (valid when is true)
+
+
+
+
+ Gets or sets the default ordered start ("1" for BulletType = '1')
+
+
+
+
+ Gets or sets the ordered delimiter character (usually `.` or `)`) found after an ordered list item.
+
+
+
+
+ Gets or sets a value indicating whether this instance is loose.
+
+
+
+
+ A list item (Section 5.2 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ The number defined for this in an ordered list
+
+
+
+
+ Gets or sets the bullet as parsed in the source document.
+ Trivia: only parsed when is enabled, otherwise
+ .
+
+
+
+
+ The root Markdown document.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the number of lines in this
+
+
+
+
+ Gets a list of zero-based indexes of line beginnings in the source span
+ Available if is used, otherwise null
+
+
+
+
+ Base implementation for a the Markdown syntax tree.
+
+
+
+
+ The attached datas. Use internally a simple array instead of a Dictionary{Object,Object}
+ as we expect less than 5~10 entries, usually typically 1 (HtmlAttributes)
+ so it will gives faster access than a Dictionary, and lower memory occupation
+
+
+
+
+ Gets or sets the text column this instance was declared (zero-based).
+
+
+
+
+ Gets or sets the text line this instance was declared (zero-based).
+
+
+
+
+ The source span
+
+
+
+
+ Gets a string of the location in the text.
+
+
+
+
+
+ Stores a key/value pair for this instance.
+
+ The key.
+ The value.
+ if key is null
+
+
+
+ Determines whether this instance contains the specified key data.
+
+ The key.
+ true if a data with the key is stored
+ if key is null
+
+
+
+ Gets the associated data for the specified key.
+
+ The key.
+ The associated data or null if none
+ if key is null
+
+
+
+ Removes the associated data for the specified key.
+
+ The key.
+ true if the data was removed; false otherwise
+
+
+
+
+ Extensions for visiting or
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and .
+ The descendant elements are returned in DFS-like order.
+
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element, including and and filters by the type .
+ The descendant elements are returned in DFS-like order.
+
+ Type to use for filtering the descendants
+ The markdown object.
+ An iteration over the descendant elements
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The inline markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Iterates over the descendant elements for the specified markdown element and filters by the type .
+
+ Type to use for filtering the descendants
+ The markdown object.
+
+ An iteration over the descendant elements
+
+
+
+
+ Block representing a document with characters but no blocks. This can
+ happen when an input document consists solely of trivia.
+
+
+
+
+ Represents a paragraph.
+
+
+ Related to CommonMark spec: 4.8 Paragraphs
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ A block quote (Section 5.1 CommonMark specs)
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
+ Gets or sets the trivia per line of this QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets the quote character (usually `>`)
+
+
+
+
+ Represents trivia per line part of a QuoteBlock.
+ Trivia: only parsed when is enabled.
+
+
+
+
+ Gets or sets trivia occurring before the first quote character.
+
+
+
+
+ True when this QuoteBlock line has a quote character. False when
+ this line is a "lazy line".
+
+
+
+
+ True if a space is parsed right after the quote character.
+
+
+
+
+ Gets or sets the trivia after the the space after the quote character.
+ The first space is assigned to , subsequent
+ trivia is assigned to this property.
+
+
+
+
+ Gets or sets the newline of this QuoeBlockLine.
+
+
+
+
+ A span of text.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The start.
+ The end.
+
+
+
+ Gets or sets the starting character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets or sets the ending character position from the original text source.
+ Note that for inline elements, this is only valid if is setup on the pipeline.
+
+
+
+
+ Gets the character length of this element within the original source code.
+
+
+
+
+ Represents a thematic break (Section 4.1 CommonMark specs).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parser used to create this block.
+
+
+
diff --git a/packages/Markdig.0.41.3/markdig.png b/packages/Markdig.0.41.3/markdig.png
new file mode 100644
index 0000000..46d3220
Binary files /dev/null and b/packages/Markdig.0.41.3/markdig.png differ
diff --git a/packages/Markdig.0.41.3/readme.md b/packages/Markdig.0.41.3/readme.md
new file mode 100644
index 0000000..60644a1
--- /dev/null
+++ b/packages/Markdig.0.41.3/readme.md
@@ -0,0 +1,167 @@
+# Markdig [](https://github.com/xoofx/markdig/actions/workflows/ci.yml) [](https://coveralls.io/github/xoofx/markdig?branch=master) [](https://www.nuget.org/packages/Markdig/) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FRGHXBTP442JL)
+
+
+
+Markdig is a fast, powerful, [CommonMark](https://commonmark.org/) compliant, extensible Markdown processor for .NET.
+
+> NOTE: The repository is under construction. There will be a dedicated website and proper documentation at some point!
+
+You can **try Markdig online** and compare it to other implementations on [babelmark3](https://babelmark.github.io/?text=Hello+**Markdig**!)
+
+## Features
+
+- **Very fast parser and html renderer** (no-regexp), very lightweight in terms of GC pressure. See benchmarks
+- **Abstract Syntax Tree** with precise source code location for syntax tree, useful when building a Markdown editor.
+ - Checkout [Markdown Editor v2 for Visual Studio 2022](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.MarkdownEditor2) powered by Markdig!
+- Converter to **HTML**
+- Passing more than **600+ tests** from the latest [CommonMark specs (0.31.2)](https://spec.commonmark.org/)
+- Includes all the core elements of CommonMark:
+ - including **GFM fenced code blocks**.
+- **Extensible** architecture
+ - Even the core Markdown/CommonMark parsing is pluggable, so it allows to disable builtin Markdown/Commonmark parsing (e.g [Disable HTML parsing](https://github.com/lunet-io/markdig/blob/7964bd0160d4c18e4155127a4c863d61ebd8944a/src/Markdig/MarkdownExtensions.cs#L306)) or change behaviour (e.g change matching `#` of a headers with `@`)
+- [**Roundtrip support**](./src/Markdig/Roundtrip.md): Parses trivia (whitespace, newlines and other characters) to support lossless parse ⢠render roundtrip. This enables changing markdown documents without introducing undesired trivia changes.
+- Built-in with **20+ extensions**, including:
+ - 2 kind of tables:
+ - [**Pipe tables**](src/Markdig.Tests/Specs/PipeTableSpecs.md) (inspired from GitHub tables and [PanDoc - Pipe Tables](https://pandoc.org/MANUAL.html#extension-pipe_tables))
+ - [**Grid tables**](src/Markdig.Tests/Specs/GridTableSpecs.md) (inspired from [Pandoc - Grid Tables](https://pandoc.org/MANUAL.html#extension-grid_tables))
+ - [**Extra emphasis**](src/Markdig.Tests/Specs/EmphasisExtraSpecs.md) (inspired from [Pandoc - Emphasis](https://pandoc.org/MANUAL.html#strikeout) and [Markdown-it](https://markdown-it.github.io/))
+ - strike through `~~`,
+ - Subscript `~`
+ - Superscript `^`
+ - Inserted `++`
+ - Marked `==`
+ - [**Special attributes**](src/Markdig.Tests/Specs/GenericAttributesSpecs.md) or attached HTML attributes (inspired from [PHP Markdown Extra - Special Attributes](https://michelf.ca/projects/php-markdown/extra/#spe-attr))
+ - [**Definition lists**](src/Markdig.Tests/Specs/DefinitionListSpecs.md) (inspired from [PHP Markdown Extra - Definitions Lists](https://michelf.ca/projects/php-markdown/extra/#def-list))
+ - [**Footnotes**](src/Markdig.Tests/Specs/FootnotesSpecs.md) (inspired from [PHP Markdown Extra - Footnotes](https://michelf.ca/projects/php-markdown/extra/#footnotes))
+ - [**Auto-identifiers**](src/Markdig.Tests/Specs/AutoIdentifierSpecs.md) for headings (similar to [Pandoc - Auto Identifiers](https://pandoc.org/MANUAL.html#extension-auto_identifiers))
+ - [**Auto-links**](src/Markdig.Tests/Specs/AutoLinks.md) generates links if a text starts with `http://` or `https://` or `ftp://` or `mailto:` or `www.xxx.yyy`
+ - [**Task Lists**](src/Markdig.Tests/Specs/TaskListSpecs.md) inspired from [Github Task lists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments).
+ - [**Extra bullet lists**](src/Markdig.Tests/Specs/ListExtraSpecs.md), supporting alpha bullet `a.` `b.` and roman bullet (`i`, `ii`...etc.)
+ - [**Media support**](src/Markdig.Tests/Specs/MediaSpecs.md) for media url (youtube, vimeo, mp4...etc.) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/embedded-audio-and-video/441))
+ - [**Abbreviations**](src/Markdig.Tests/Specs/AbbreviationSpecs.md) (inspired from [PHP Markdown Extra - Abbreviations](https://michelf.ca/projects/php-markdown/extra/#abbr))
+ - [**Citation**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) text by enclosing `""...""` (inspired by this [CommonMark discussion ](https://talk.commonmark.org/t/referencing-creative-works-with-cite/892))
+ - [**Custom containers**](src/Markdig.Tests/Specs/CustomContainerSpecs.md) similar to fenced code block `:::` for generating a proper `
...
` instead (inspired by this [CommonMark discussion ](https://talk.commonmark.org/t/custom-container-for-block-and-inline/2051))
+ - [**Figures**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/image-tag-should-expand-to-figure-when-used-with-title/265/5))
+ - [**Footers**](src/Markdig.Tests/Specs/FigureFooterAndCiteSpecs.md) (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/syntax-for-footer/2070))
+ - [**Mathematics**](src/Markdig.Tests/Specs/MathSpecs.md)/Latex extension by enclosing `$$` for block and `$` for inline math (inspired from this [CommonMark discussion](https://talk.commonmark.org/t/mathematics-extension/457/31))
+ - [**Soft lines as hard lines**](src/Markdig.Tests/Specs/HardlineBreakSpecs.md)
+ - [**Emoji**](src/Markdig.Tests/Specs/EmojiSpecs.md) support (inspired from [Markdown-it](https://markdown-it.github.io/))
+ - [**SmartyPants**](src/Markdig.Tests/Specs/SmartyPantsSpecs.md) (inspired from [Daring Fireball - SmartyPants](https://daringfireball.net/projects/smartypants/))
+ - [**Bootstrap**](src/Markdig.Tests/Specs/BootstrapSpecs.md) class (to output bootstrap class)
+ - [**Diagrams**](src/Markdig.Tests/Specs/DiagramsSpecs.md) extension whenever a fenced code block contains a special keyword, it will be converted to a div block with the content as-is (currently, supports [`mermaid`](https://mermaid.js.org) and [`nomnoml`](https://github.com/skanaar/nomnoml) diagrams)
+ - [**YAML Front Matter**](src/Markdig.Tests/Specs/YamlSpecs.md) to parse without evaluating the front matter and to discard it from the HTML output (typically used for previewing without the front matter in MarkdownEditor)
+ - [**JIRA links**](src/Markdig.Tests/Specs/JiraLinks.md) to automatically generate links for JIRA project references (Thanks to @clarkd: https://github.com/clarkd/MarkdigJiraLinker)
+- Starting with Markdig version `0.20.0+`, Markdig is compatible only with `NETStandard 2.0`, `NETStandard 2.1`, `NETCoreApp 2.1` and `NETCoreApp 3.1`.
+
+If you are looking for support for an old .NET Framework 3.5 or 4.0, you can download Markdig `0.18.3`.
+
+### Third Party Extensions
+
+- [**WPF/XAML Markdown Renderer**: `markdig.wpf`](https://github.com/Kryptos-FR/markdig.wpf)
+- [**WPF/XAML Markdown Renderer**: `Neo.Markdig.Xaml`](https://github.com/neolithos/NeoMarkdigXaml)
+- [**Syntax highlighting**: `Markdig.SyntaxHighlighting`](https://github.com/RichardSlater/Markdig.SyntaxHighlighting)
+- [**Syntax highlighting using ColorCode-Universal**: `Markdown.ColorCode`](https://github.com/wbaldoumas/markdown-colorcode)
+- [**Syntax highlighting using Prism.js**: `WebStoating.Markdig.Prism`](https://github.com/ilich/Markdig.Prism)
+- [**Embedded C# scripting**: `Markdig.Extensions.ScriptCs`](https://github.com/macaba/Markdig.Extensions.ScriptCs)
+
+## Documentation
+
+> The repository is under construction. There will be a dedicated website and proper documentation at some point!
+
+While there is not yet a dedicated documentation, you can find from the [specs documentation](src/Markdig.Tests/Specs/readme.md) how to use these extensions.
+
+In the meantime, you can have a "behind the scene" article about Markdig in my blog post ["Implementing a Markdown Engine for .NET"](https://xoofx.github.io/blog/2016/06/13/implementing-a-markdown-processor-for-dotnet/)
+
+## Download
+
+Markdig is available as a NuGet package: [](https://www.nuget.org/packages/Markdig/)
+
+Also [Markdig.Signed](https://www.nuget.org/packages/Markdig.Signed/) NuGet package provides signed assemblies.
+
+## Usage
+
+The main entry point for the API is the `Markdig.Markdown` class:
+
+By default, without any options, Markdig is using the plain CommonMark parser:
+
+```csharp
+var result = Markdown.ToHtml("This is a text with some *emphasis*");
+Console.WriteLine(result); // prints: This is a text with some emphasis
+```
+
+In order to activate most of all advanced extensions (except Emoji, SoftLine as HardLine, Bootstrap, YAML Front Matter, JiraLinks and SmartyPants)
+
+```csharp
+// Configure the pipeline with all advanced extensions active
+var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
+var result = Markdown.ToHtml("This is a text with some *emphasis*", pipeline);
+```
+
+[Try it online!](https://dotnetfiddle.net/GoZXyI)
+
+You can have a look at the [MarkdownExtensions](https://github.com/lunet-io/markdig/blob/master/src/Markdig/MarkdownExtensions.cs) that describes all actionable extensions (by modifying the MarkdownPipeline)
+
+## Contributing
+
+Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. For detailed contributing guidelines, please see [contributing.md](contributing.md).
+
+## Build
+
+In order to build Markdig, you need to install [.NET 6.0](https://dotnet.microsoft.com/en-us/download)
+
+## License
+
+This software is released under the [BSD-Clause 2 license](https://github.com/lunet-io/markdig/blob/master/license.txt).
+
+
+## Benchmarking
+
+The latest benchmark was collected on April 23 2022, against the following implementations:
+
+- [Markdig](https://github.com/lunet-io/markdig) (version: 0.30.2): itself
+- [cmark](https://github.com/commonmark/cmark) (version: 0.30.2): Reference C implementation of CommonMark, no support for extensions
+- [CommonMark.NET(master)](https://github.com/Knagis/CommonMark.NET) (version: 0.15.1): CommonMark implementation for .NET, no support for extensions, port of cmark, deprecated.
+- [MarkdownSharp](https://github.com/Kiri-rin/markdownsharp) (version: 2.0.5): Open source C# implementation of Markdown processor, as featured previously on Stack Overflow, regexp based.
+
+```
+// * Summary *
+
+BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000
+AMD Ryzen 9 5950X, 1 CPU, 32 logical and 16 physical cores
+.NET SDK=6.0.202
+ [Host] : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
+ DefaultJob : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
+
+
+| Method | Mean | Error | StdDev |
+|------------------ |-----------:|----------:|----------:|
+| markdig | 1.979 ms | 0.0221 ms | 0.0185 ms |
+| cmark | 2.571 ms | 0.0081 ms | 0.0076 ms |
+| CommonMark.NET | 2.016 ms | 0.0169 ms | 0.0158 ms |
+| MarkdownSharp | 221.455 ms | 1.4442 ms | 1.3509 ms |
+```
+
+- Markdig is roughly **x100 times faster than MarkdownSharp**
+- **20% faster than the reference cmark C implementation**
+
+## Sponsors
+
+Supports this project with a monthly donation and help me continue improving it. \[[Become a sponsor](https://github.com/sponsors/xoofx)\]
+
+[
](https://github.com/lilith) Lilith River, author of [Imageflow Server, an easy on-demand
+image editing, optimization, and delivery server](https://github.com/imazen/imageflow-server)
+
+## Credits
+
+Thanks to the fantastic work done by [John Mac Farlane](https://johnmacfarlane.net/) for the CommonMark specs and all the people involved in making Markdown a better standard!
+
+This project would not have been possible without this huge foundation.
+
+Thanks also to the project [BenchmarkDotNet](https://github.com/PerfDotNet/BenchmarkDotNet) that makes benchmarking so easy to setup!
+
+Some decoding part (e.g HTML [EntityHelper.cs](https://github.com/lunet-io/markdig/blob/master/src/Markdig/Helpers/EntityHelper.cs)) have been re-used from [CommonMark.NET](https://github.com/Knagis/CommonMark.NET)
+
+Thanks to the work done by @clarkd on the [JIRA Link extension](https://github.com/clarkd/MarkdigJiraLinker), now included with this project!
+## Author
+
+Alexandre MUTEL aka [xoofx](https://xoofx.github.io/)
diff --git a/packages/System.Buffers.4.6.1/.signature.p7s b/packages/System.Buffers.4.6.1/.signature.p7s
new file mode 100644
index 0000000..5f23092
Binary files /dev/null and b/packages/System.Buffers.4.6.1/.signature.p7s differ
diff --git a/packages/System.Buffers.4.6.1/Icon.png b/packages/System.Buffers.4.6.1/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Buffers.4.6.1/Icon.png differ
diff --git a/packages/System.Buffers.4.6.1/PACKAGE.md b/packages/System.Buffers.4.6.1/PACKAGE.md
new file mode 100644
index 0000000..8ee70a0
--- /dev/null
+++ b/packages/System.Buffers.4.6.1/PACKAGE.md
@@ -0,0 +1,21 @@
+## About
+
+Provides resource pooling of any type for performance-critical applications that allocate and deallocate objects frequently.
+
+## Main Types
+
+The main types provided by this library are:
+
+- System.Buffers.ArrayPool
+
+## Additional Documentation
+
+- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.buffers
+
+## Related Packages
+
+ArrayPool is shipped as part of the shared framework starting with .NET Core 3.1.
+
+## License
+
+System.Buffers is released as open source under the [MIT license](https://licenses.nuget.org/MIT).
diff --git a/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg b/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg
new file mode 100644
index 0000000..093c563
Binary files /dev/null and b/packages/System.Buffers.4.6.1/System.Buffers.4.6.1.nupkg differ
diff --git a/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets b/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets
new file mode 100644
index 0000000..5c47189
--- /dev/null
+++ b/packages/System.Buffers.4.6.1/buildTransitive/net461/System.Buffers.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Buffers.4.6.1/buildTransitive/net462/_._ b/packages/System.Buffers.4.6.1/buildTransitive/net462/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll
new file mode 100644
index 0000000..67a31fb
Binary files /dev/null and b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml
new file mode 100644
index 0000000..fe1f651
--- /dev/null
+++ b/packages/System.Buffers.4.6.1/lib/net462/System.Buffers.xml
@@ -0,0 +1,173 @@
+
+
+
+ System.Buffers
+
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+
+
+
+ Renting and returning buffers with an can increase performance
+ in situations where arrays are created and destroyed frequently, resulting in significant
+ memory pressure on the garbage collector.
+
+
+ This class is thread-safe. All members may be used by multiple threads concurrently.
+
+
+
+
+ The lazily-initialized shared pool instance.
+
+
+
+ Retrieves a shared instance.
+
+
+ The shared pool provides a default implementation of
+ that's intended for general applicability. It maintains arrays of multiple sizes, and
+ may hand back a larger array than was actually requested, but will never hand back a smaller
+ array than was requested. Renting a buffer from it with will result in an
+ existing buffer being taken from the pool if an appropriate buffer is available or in a new
+ buffer being allocated if one is not available.
+
+
+
+ Ensures that has been initialized to a pool and returns it.
+
+
+
+ Creates a new instance using default configuration options.
+
+ A new instance.
+
+
+
+ Creates a new instance using custom configuration options.
+
+ The maximum length of array instances 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 with the specified configuration options.
+
+ The created pool will group arrays into buckets, with no more than
+ in each bucket and with those arrays not exceeding in length.
+
+
+
+
+ Retrieves a buffer that is at least the requested length.
+
+ The minimum length of the array needed.
+
+ An that is at least in length.
+
+
+ This buffer is loaned to the caller and should be returned to the same pool via
+ so that it may be reused in subsequent usage of .
+ It is not a fatal error to not return a rented buffer, but failure to do so may lead to
+ decreased application performance, as the pool may need to create a new buffer to replace
+ the one lost.
+
+
+
+
+ Returns to the pool an array that was previously obtained via on the same
+ instance.
+
+
+ The buffer previously obtained from to return to the pool.
+
+
+ If true and if the pool will store the buffer to enable subsequent reuse,
+ will clear of its contents so that a subsequent consumer via
+ will not see the previous consumer's content. If false or if the pool will release the buffer,
+ the array's contents are left unchanged.
+
+
+ Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
+ and must not use it. The reference returned from a given call to must only be
+ returned via once. The default
+ may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
+ if it's determined that the pool already has enough buffers stored.
+
+
+
+ The reason for a BufferAllocated event.
+
+
+ The pool is allocating a buffer to be pooled in a bucket.
+
+
+ The requested buffer size was too large to be pooled.
+
+
+ The pool has already allocated for pooling as many buffers of a particular size as it's allowed.
+
+
+
+ Event for when a buffer is rented. This is invoked once for every successful call to Rent,
+ regardless of whether a buffer is allocated or a buffer is taken from the pool. In a
+ perfect situation where all rented buffers are returned, we expect to see the number
+ of BufferRented events exactly match the number of BuferReturned events, with the number
+ of BufferAllocated events being less than or equal to those numbers (ideally significantly
+ less than).
+
+
+
+
+ Event for when a buffer is allocated by the pool. In an ideal situation, the number
+ of BufferAllocated events is significantly smaller than the number of BufferRented and
+ BufferReturned events.
+
+
+
+
+ Event raised when a buffer is returned to the pool. This event is raised regardless of whether
+ the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned
+ events exactly matches the number of BufferRented events.
+
+
+
+ The default maximum length of each array in the pool (2^20).
+
+
+ The default maximum number of arrays per bucket that are available for rent.
+
+
+ Lazily-allocated empty array used when arrays of length 0 are requested.
+
+
+ Gets an ID for the pool to use with events.
+
+
+ Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd.
+
+
+
+ Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length.
+
+
+
+ Gets an ID for the bucket to use with events.
+
+
+ Takes an array from the bucket. If the bucket is empty, returns null.
+
+
+
+ Attempts to return the buffer to the bucket. If successful, the buffer will be stored
+ in the bucket and true will be returned; otherwise, the buffer won't be stored, and false
+ will be returned.
+
+
+
+ The buffer is not associated with this pool and may not be returned to it.
+
+
+
diff --git a/packages/System.Buffers.4.6.1/lib/netcoreapp2.0/_._ b/packages/System.Buffers.4.6.1/lib/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll
new file mode 100644
index 0000000..a4525d6
Binary files /dev/null and b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.dll differ
diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml
new file mode 100644
index 0000000..fe1f651
--- /dev/null
+++ b/packages/System.Buffers.4.6.1/lib/netstandard2.0/System.Buffers.xml
@@ -0,0 +1,173 @@
+
+
+
+ System.Buffers
+
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+
+
+
+ Renting and returning buffers with an can increase performance
+ in situations where arrays are created and destroyed frequently, resulting in significant
+ memory pressure on the garbage collector.
+
+
+ This class is thread-safe. All members may be used by multiple threads concurrently.
+
+
+
+
+ The lazily-initialized shared pool instance.
+
+
+
+ Retrieves a shared instance.
+
+
+ The shared pool provides a default implementation of
+ that's intended for general applicability. It maintains arrays of multiple sizes, and
+ may hand back a larger array than was actually requested, but will never hand back a smaller
+ array than was requested. Renting a buffer from it with will result in an
+ existing buffer being taken from the pool if an appropriate buffer is available or in a new
+ buffer being allocated if one is not available.
+
+
+
+ Ensures that has been initialized to a pool and returns it.
+
+
+
+ Creates a new instance using default configuration options.
+
+ A new instance.
+
+
+
+ Creates a new instance using custom configuration options.
+
+ The maximum length of array instances 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 with the specified configuration options.
+
+ The created pool will group arrays into buckets, with no more than
+ in each bucket and with those arrays not exceeding in length.
+
+
+
+
+ Retrieves a buffer that is at least the requested length.
+
+ The minimum length of the array needed.
+
+ An that is at least in length.
+
+
+ This buffer is loaned to the caller and should be returned to the same pool via
+ so that it may be reused in subsequent usage of .
+ It is not a fatal error to not return a rented buffer, but failure to do so may lead to
+ decreased application performance, as the pool may need to create a new buffer to replace
+ the one lost.
+
+
+
+
+ Returns to the pool an array that was previously obtained via on the same
+ instance.
+
+
+ The buffer previously obtained from to return to the pool.
+
+
+ If true and if the pool will store the buffer to enable subsequent reuse,
+ will clear of its contents so that a subsequent consumer via
+ will not see the previous consumer's content. If false or if the pool will release the buffer,
+ the array's contents are left unchanged.
+
+
+ Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
+ and must not use it. The reference returned from a given call to must only be
+ returned via once. The default
+ may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
+ if it's determined that the pool already has enough buffers stored.
+
+
+
+ The reason for a BufferAllocated event.
+
+
+ The pool is allocating a buffer to be pooled in a bucket.
+
+
+ The requested buffer size was too large to be pooled.
+
+
+ The pool has already allocated for pooling as many buffers of a particular size as it's allowed.
+
+
+
+ Event for when a buffer is rented. This is invoked once for every successful call to Rent,
+ regardless of whether a buffer is allocated or a buffer is taken from the pool. In a
+ perfect situation where all rented buffers are returned, we expect to see the number
+ of BufferRented events exactly match the number of BuferReturned events, with the number
+ of BufferAllocated events being less than or equal to those numbers (ideally significantly
+ less than).
+
+
+
+
+ Event for when a buffer is allocated by the pool. In an ideal situation, the number
+ of BufferAllocated events is significantly smaller than the number of BufferRented and
+ BufferReturned events.
+
+
+
+
+ Event raised when a buffer is returned to the pool. This event is raised regardless of whether
+ the returned buffer is stored or dropped. In an ideal situation, the number of BufferReturned
+ events exactly matches the number of BufferRented events.
+
+
+
+ The default maximum length of each array in the pool (2^20).
+
+
+ The default maximum number of arrays per bucket that are available for rent.
+
+
+ Lazily-allocated empty array used when arrays of length 0 are requested.
+
+
+ Gets an ID for the pool to use with events.
+
+
+ Provides a thread-safe bucket containing buffers that can be Rent'd and Return'd.
+
+
+
+ Creates the pool with numberOfBuffers arrays where each buffer is of bufferLength length.
+
+
+
+ Gets an ID for the bucket to use with events.
+
+
+ Takes an array from the bucket. If the bucket is empty, returns null.
+
+
+
+ Attempts to return the buffer to the bucket. If successful, the buffer will be stored
+ in the bucket and true will be returned; otherwise, the buffer won't be stored, and false
+ will be returned.
+
+
+
+ The buffer is not associated with this pool and may not be returned to it.
+
+
+
diff --git a/packages/System.Buffers.4.6.1/lib/netstandard2.1/_._ b/packages/System.Buffers.4.6.1/lib/netstandard2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.6.3/.signature.p7s b/packages/System.Memory.4.6.3/.signature.p7s
new file mode 100644
index 0000000..4f69dec
Binary files /dev/null and b/packages/System.Memory.4.6.3/.signature.p7s differ
diff --git a/packages/System.Memory.4.6.3/Icon.png b/packages/System.Memory.4.6.3/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Memory.4.6.3/Icon.png differ
diff --git a/packages/System.Memory.4.6.3/PACKAGE.md b/packages/System.Memory.4.6.3/PACKAGE.md
new file mode 100644
index 0000000..e917e28
--- /dev/null
+++ b/packages/System.Memory.4.6.3/PACKAGE.md
@@ -0,0 +1,29 @@
+## About
+
+Provides types for efficient representation and pooling of managed, stack, and native memory segments and sequences of such segments, along with primitives to parse and format UTF-8 encoded text stored in those memory segments.
+
+## Main Types
+
+The main types provided by this library are:
+
+- System.Span
+- System.ReadOnlySpan
+- System.Memory
+- System.ReadOnlyMemory
+- System.Buffers.MemoryPool
+- System.Buffers.ReadOnlySequence
+- System.Buffers.Text.Utf8Parser
+- System.Buffers.Text.Utf8Formatter
+
+## Additional Documentation
+
+- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.memory
+https://learn.microsoft.com/en-us/archive/msdn-magazine/2018/january/csharp-all-about-span-exploring-a-new-net-mainstay
+
+## Related Packages
+
+The types in this assembly are shipped as part of the shared framework starting with .NET Core 3.1.
+
+## License
+
+System.Memory is released as open source under the [MIT license](https://licenses.nuget.org/MIT).
diff --git a/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg b/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg
new file mode 100644
index 0000000..7e26fe1
Binary files /dev/null and b/packages/System.Memory.4.6.3/System.Memory.4.6.3.nupkg differ
diff --git a/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets b/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets
new file mode 100644
index 0000000..08b98c0
--- /dev/null
+++ b/packages/System.Memory.4.6.3/buildTransitive/net461/System.Memory.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Memory.4.6.3/buildTransitive/net462/_._ b/packages/System.Memory.4.6.3/buildTransitive/net462/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll b/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll
new file mode 100644
index 0000000..9b4f824
Binary files /dev/null and b/packages/System.Memory.4.6.3/lib/net462/System.Memory.dll differ
diff --git a/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml b/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml
new file mode 100644
index 0000000..ff0619c
--- /dev/null
+++ b/packages/System.Memory.4.6.3/lib/net462/System.Memory.xml
@@ -0,0 +1,3489 @@
+
+
+
+ System.Memory
+
+
+
+
+ Reads bytes as primitives with specific endianness
+
+
+ For native formats, MemoryExtensions.Read{T}; should be used.
+ Use these helpers when you need to read specific endinanness.
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip sbyte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip byte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Extension methods for
+
+
+
+
+ Returns position of first occurrence of item in the
+
+
+
+
+ Copy the to the specified .
+
+ The source .
+ The destination .
+
+
+
+ Converts the to an array
+
+
+
+
+ Writes contents of to
+
+
+
+
+ Represents a sink
+
+
+
+
+ Notifies that amount of data was written to /
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Owner of Memory that is responsible for disposing the underlying memory appropriately.
+
+
+
+
+ Returns a Memory.
+
+
+
+
+ Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them.
+
+
+
+
+ Call this method to indicate that the IPinnable object can not be moved by the garbage collector.
+ The address of the pinned object can be taken.
+ The offset to the element within the memory at which the returned points to.
+
+
+
+
+ Call this method to indicate that the IPinnable object no longer needs to be pinned.
+ The garbage collector is free to move the object now.
+
+
+
+
+ A handle for the memory.
+
+
+
+
+ Creates a new memory handle for the memory.
+
+ pointer to memory
+ reference to manually managed object, or default if there is no memory manager
+ handle used to pin array buffers
+
+
+
+ Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change.
+
+
+
+
+ Frees the pinned handle and releases IPinnable.
+
+
+
+
+ Manager of that provides the implementation.
+
+
+
+
+ Returns a .
+
+
+
+
+ Returns a span wrapping the underlying memory.
+
+
+
+
+ Returns a handle to the memory that has been pinned and hence its address can be taken.
+
+ The offset to the element within the memory at which the returned points to. (default = 0)
+
+
+
+ Lets the garbage collector know that the object is free to be moved now.
+
+
+
+
+ Returns a for the current .
+
+ The element count in the memory, starting at offset 0.
+
+
+
+ Returns a for the current .
+
+ The offset to the element which the returned memory starts at.
+ The element count in the memory, starting at element offset .
+
+
+
+ Returns an array segment.
+ Returns the default array segment if not overriden.
+
+
+
+
+ Implements IDisposable.
+
+
+
+
+ Clean up of any leftover managed and unmanaged resources.
+
+
+
+
+ Represents a pool of memory blocks.
+
+
+
+
+ Returns a singleton instance of a MemoryPool based on arrays.
+
+
+
+
+ Returns a memory block capable of holding at least elements of T.
+
+ If -1 is passed, this is set to a default value for the pool.
+
+
+
+ Returns the maximum buffer size supported by this pool.
+
+
+
+
+ Constructs a new instance of a memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+
+ This enum defines the various potential status that can be returned from Span-based operations
+ that support processing of input contained in multiple discontiguous buffers.
+
+
+
+
+ The entire input buffer has been processed and the operation is complete.
+
+
+
+
+ The input is partially processed, up to what could fit into the destination buffer.
+ The caller can enlarge the destination buffer, slice the buffers appropriately, and retry.
+
+
+
+
+ The input is partially processed, up to the last valid chunk of the input that could be consumed.
+ The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry.
+
+
+
+
+ The input contained invalid bytes which could not be processed. If the input is partially processed,
+ the destination contains the partial result. This guarantees that no additional data appended to the input
+ will make the invalid sequence valid.
+
+
+
+
+ Represents a sequence that can read a sequential series of .
+
+
+
+
+ Returns empty
+
+
+
+
+ Length of the .
+
+
+
+
+ Determines if the is empty.
+
+
+
+
+ Determines if the contains a single segment.
+
+
+
+
+ Gets from the first segment.
+
+
+
+
+ A position to the start of the .
+
+
+
+
+ A position to the end of the
+
+
+
+
+ Creates an instance of from linked memory list represented by start and end segments
+ and corresponding indexes in them.
+
+
+
+
+ Creates an instance of from the .
+
+
+
+
+ Creates an instance of from the , start and index.
+
+
+
+
+ Creates an instance of from the .
+ Consumer is expected to manage lifetime of memory until is not used anymore.
+
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at ', with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The starting (inclusive) at which to begin this slice.
+ The ending (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The starting (inclusive) at which to begin this slice.
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The start index at which to begin this slice.
+
+
+
+
+
+
+ Returns an enumerator over the
+
+
+
+
+ Returns a new at an from the start of the sequence.
+
+
+
+
+ Returns a new at an from the
+
+
+
+
+ Tries to retrieve next segment after and return its contents in .
+ Returns false if end of was reached otherwise true.
+ Sets to the beginning of next segment if is set to true.
+
+
+
+
+ An enumerator over the
+
+
+
+ Initialize the enumerator.
+ The to enumerate.
+
+
+
+ The current
+
+
+
+
+ Moves to the next in the
+
+
+
+
+
+ Represents a linked list of nodes.
+
+
+
+
+ The value for current node.
+
+
+
+
+ The next node.
+
+
+
+
+ The sum of node length before current.
+
+
+
+
+ Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X')
+ and an optional precision ranging from 0..99, or the special value NoPrecision.
+
+
+
+
+ Precision values for format that don't use a precision, or for when the precision is to be unspecified.
+
+
+
+
+ The maximum valid precision value.
+
+
+
+
+ The character component of the format.
+
+
+
+
+ The precision component of the format. Ranges from 0..9 or the special value NoPrecision.
+
+
+
+
+ true if Precision is a value other than NoPrecision
+
+
+
+
+ true if the StandardFormat == default(StandardFormat)
+
+
+
+
+ Create a StandardFormat.
+
+ A type-specific formatting character such as 'G', 'D' or 'X'
+ An optional precision ranging from 0..9 or the special value NoPrecision (the default)
+
+
+
+ Converts a character to a StandardFormat using the NoPrecision precision.
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Compute a hash code.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns the format in classic .NET format.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns false if both the Symbol and Precision are equal.
+
+
+
+
+ Convert between binary data and UTF-8 encoded text that is represented in base 64.
+
+
+
+
+ Decode the span of UTF-8 encoded text represented as base 64 into binary data.
+ If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4.
+
+ The input span which contains UTF-8 encoded text in base 64 that needs to be decoded.
+ The output span which contains the result of the operation, i.e. the decoded binary data.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input
+ - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0.
+
+
+
+
+ Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data.
+ The decoded binary output is smaller than the text data contained in the input (the operation deflates the data).
+ If the input is not a multiple of 4, it will not decode any.
+
+ The input span which contains the base 64 text data that needs to be decoded.
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4).
+ It does not return DestinationTooSmall since that is not possible for base 64 decoding.
+ It does not return NeedMoreData since this method tramples the data in the buffer and
+ hence can only be called once with all the data in the buffer.
+
+
+
+
+ Encode the span of binary data into UTF-8 encoded text represented as base 64.
+
+ The input span which contains binary data that needs to be encoded.
+ The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input
+ - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3).
+
+
+
+
+ Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64.
+ The encoded text output is larger than the binary data contained in the input (the operation inflates the data).
+
+ The input span which contains binary data that needs to be encoded.
+ It needs to be large enough to fit the result of the operation.
+ The amount of binary data contained within the buffer that needs to be encoded
+ (and needs to be smaller than the buffer length).
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire buffer
+ - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input
+ It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer.
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the symbol contained within the standard format. If the standard format
+ has not been initialized, returns the provided fallback symbol.
+
+
+
+
+ Fills a buffer with the ASCII character '0' (0x30).
+
+
+
+
+ Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+
+
+ Formats a Boolean as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTimeOffset as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTime as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Decimal as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Double as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Single as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Guid as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Used to provide access to the individual bytes of a GUID.
+
+
+
+
+ Formats a Byte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an SByte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Unt16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a TimeSpan as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Methods to parse common data types to Utf8 strings.
+
+
+
+
+ Parses a Boolean at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTime at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTimeOffset at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset/Local time conversion factory.
+
+
+
+
+ Overflow-safe DateTime factory.
+
+
+
+
+ Parses a Decimal at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Single at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Double at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Guid at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a SByte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Byte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a TimeSpan at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan
+ parser rejects the string (even if the extra digits are all zeroes.)
+
+
+
+
+ Overflow-safe TryCreateTimeSpan
+
+
+
+
+ Memory represents a contiguous region of arbitrary memory similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 0 index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The number of items in the memory.
+
+ Thrown when the specified is negative.
+
+ For internal infrastructure only
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+ Thrown when the specified or is negative.
+
+ For internal infrastructure only
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ Determines whether the specified object is equal to the current object.
+ Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length.
+
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Serves as the default hash function.
+
+
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+
+
+ Removes all leading and trailing white-space characters from the span.
+
+
+
+
+ Removes all leading white-space characters from the span.
+
+
+
+
+ Removes all trailing white-space characters from the span.
+
+
+
+
+ Removes all leading and trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading and trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all leading occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Indicates whether the specified span contains only white-space characters.
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Reverses the sequence of the elements in the entire span.
+
+
+
+
+ Creates a new span over the target array.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the portion of the target array segment.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=array.Length).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory over the portion of the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Copies the contents of the array into the span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source array.
+
+
+
+
+
+ Copies the contents of the array into the memory. If the source
+ and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The memory to copy items into.
+
+ Thrown when the destination is shorter than the source array.
+
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Creates a new span over the portion of the target array.
+
+
+
+
+ Returns a value indicating whether the specified occurs within the .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Determines whether this and the specified span have the same characters
+ when compared using the specified option.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Compares the specified and using the specified ,
+ and returns an integer that indicates their relative position in the sort order.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Reports the zero-based index of the first occurrence of the specified in the current .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Determines whether the end of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the end of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Determines whether the beginning of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the beginning of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ Returns default when is null.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ Returns default when is null.
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+
+ Represents a contiguous region of memory, similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+ Creates a new memory over the existing object, start, and length. No validation is performed.
+ The target object.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the read-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the readonly-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+ Determines whether the specified object is equal to the current object.
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+ Returns the hash code for this
+
+
+ Gets the state of the memory as individual fields.
+ The offset.
+ The count.
+ The object.
+
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the read-only span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns a 0-length read-only span whose base is the null pointer.
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new read-only span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new read-only span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the read-only span.
+ The number of items in the read-only span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new read-only span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns the specified element of the read-only span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this read-only span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+
+
+ Get an array segment from the underlying memory.
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Gets an from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ A indicating if it was successful.
+
+
+
+ Gets an and , from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ The offset from the start of the that the represents.
+ The length of the that the represents.
+ A indicating if it was successful.
+
+
+
+ Creates an view of the given to allow
+ the to be used in existing APIs that take an .
+
+ The element type of the .
+ The ReadOnlyMemory to view as an
+ An view of the given
+
+
+ Attempts to get the underlying from a .
+ The memory that may be wrapping a object.
+ The string.
+ The starting location in .
+ The number of items in .
+
+
+
+
+ Reads a structure of type T out of a read-only span of bytes.
+
+
+
+
+ Reads a structure of type T out of a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Creates a new memory over the portion of the pre-pinned target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The pre-pinned target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ This method should only be called on an array that is already pinned and
+ that array should not be unpinned while the returned Memory is still in use.
+ Calling this method on an unpinned array could result in memory corruption.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Casts a Span of one primitive type to Span of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+ Creates a from a .
+ The .
+ A representing the same memory as the , but writable.
+
+ must be used with extreme caution. is used
+ to represent immutable data and other memory that is not meant to be written to; instances created
+ by should not be written to. The method exists to enable variables typed
+ as but only used for reading to store a .
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Casts a Span of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Provides a collection of methods for interoperating with
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get an array segment from the underlying .
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Represents position in non-contiguous set of memory.
+ Properties of this type should not be interpreted by anything but the type that created it.
+
+
+
+
+ Creates new
+
+
+
+
+ Returns object part of this
+
+
+
+
+ Returns integer part of this
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the span.
+ The number of items in the span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns a reference to specified element of the Span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Clears the contents of this span.
+
+
+
+
+ Fills the contents of this span with the given value.
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Implements the copy functionality used by Span and ReadOnlySpan.
+
+ NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation
+ is only used by portable span. The code must live in code that only compiles
+ for portable span which means either each individual span implementation
+ of this shared code file. Other shared SpanHelper.X.cs files are compiled
+ for both portable and fast span implementations.
+
+
+
+
+ Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits.
+
+ Assumptions:
+ Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span.
+
+ If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space),
+ the behavior is undefined.
+
+
+
+
+
+ Determine if a type is eligible for storage in unmanaged memory.
+ Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}()
+
+
+
+ Equals() on Span and ReadOnlySpan is not supported. Use operator== instead.
+
+
+ GetHashCode() on Span and ReadOnlySpan is not supported.
+
+
+ Cannot use type '{0}'. Only value types without pointers or references are supported.
+
+
+ Destination is too short.
+
+
+ Memory<T> has been disposed.
+
+
+ Release all references before disposing this instance.
+
+
+ Format specifier was invalid.
+
+
+ The 'G' format combined with a precision is not supported.
+
+
+ Characters following the format symbol must be a number of {0} or less.
+
+
+ Precision cannot be larger than {0}.
+
+
+ Overlapping spans have mismatching alignment.
+
+
+ End position was not reached during enumeration.
+
+
+ Unexpected segment type.
+
+
+
diff --git a/packages/System.Memory.4.6.3/lib/netcoreapp2.1/_._ b/packages/System.Memory.4.6.3/lib/netcoreapp2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll
new file mode 100644
index 0000000..402af9b
Binary files /dev/null and b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.dll differ
diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml
new file mode 100644
index 0000000..ff0619c
--- /dev/null
+++ b/packages/System.Memory.4.6.3/lib/netstandard2.0/System.Memory.xml
@@ -0,0 +1,3489 @@
+
+
+
+ System.Memory
+
+
+
+
+ Reads bytes as primitives with specific endianness
+
+
+ For native formats, MemoryExtensions.Read{T}; should be used.
+ Use these helpers when you need to read specific endinanness.
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip sbyte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ This is a no-op and added only for consistency.
+ This allows the caller to read a struct of numeric primitives and reverse each field
+ rather than having to skip byte fields.
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reverses a primitive value - performs an endianness swap
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as big endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+
+
+
+
+ Reads an Int16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int16, return false.
+
+
+
+
+ Reads an Int32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int32, return false.
+
+
+
+
+ Reads an Int64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain an Int64, return false.
+
+
+
+
+ Reads a UInt16 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt16, return false.
+
+
+
+
+ Reads a UInt32 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt32, return false.
+
+
+
+
+ Reads a UInt64 out of a read-only span of bytes as little endian.
+ If the span is too small to contain a UInt64, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as big endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+
+
+
+
+ Writes an Int16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Writes an Int64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt16 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt32 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Write a UInt64 into a span of bytes as little endian.
+ If the span is too small to contain the value, return false.
+
+
+
+
+ Extension methods for
+
+
+
+
+ Returns position of first occurrence of item in the
+
+
+
+
+ Copy the to the specified .
+
+ The source .
+ The destination .
+
+
+
+ Converts the to an array
+
+
+
+
+ Writes contents of to
+
+
+
+
+ Represents a sink
+
+
+
+
+ Notifies that amount of data was written to /
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Requests the that is at least in size if possible, otherwise returns maximum available memory.
+ If is equal to 0, currently available memory would get returned.
+
+
+
+
+ Owner of Memory that is responsible for disposing the underlying memory appropriately.
+
+
+
+
+ Returns a Memory.
+
+
+
+
+ Provides a mechanism for pinning and unpinning objects to prevent the GC from moving them.
+
+
+
+
+ Call this method to indicate that the IPinnable object can not be moved by the garbage collector.
+ The address of the pinned object can be taken.
+ The offset to the element within the memory at which the returned points to.
+
+
+
+
+ Call this method to indicate that the IPinnable object no longer needs to be pinned.
+ The garbage collector is free to move the object now.
+
+
+
+
+ A handle for the memory.
+
+
+
+
+ Creates a new memory handle for the memory.
+
+ pointer to memory
+ reference to manually managed object, or default if there is no memory manager
+ handle used to pin array buffers
+
+
+
+ Returns the pointer to memory, where the memory is assumed to be pinned and hence the address won't change.
+
+
+
+
+ Frees the pinned handle and releases IPinnable.
+
+
+
+
+ Manager of that provides the implementation.
+
+
+
+
+ Returns a .
+
+
+
+
+ Returns a span wrapping the underlying memory.
+
+
+
+
+ Returns a handle to the memory that has been pinned and hence its address can be taken.
+
+ The offset to the element within the memory at which the returned points to. (default = 0)
+
+
+
+ Lets the garbage collector know that the object is free to be moved now.
+
+
+
+
+ Returns a for the current .
+
+ The element count in the memory, starting at offset 0.
+
+
+
+ Returns a for the current .
+
+ The offset to the element which the returned memory starts at.
+ The element count in the memory, starting at element offset .
+
+
+
+ Returns an array segment.
+ Returns the default array segment if not overriden.
+
+
+
+
+ Implements IDisposable.
+
+
+
+
+ Clean up of any leftover managed and unmanaged resources.
+
+
+
+
+ Represents a pool of memory blocks.
+
+
+
+
+ Returns a singleton instance of a MemoryPool based on arrays.
+
+
+
+
+ Returns a memory block capable of holding at least elements of T.
+
+ If -1 is passed, this is set to a default value for the pool.
+
+
+
+ Returns the maximum buffer size supported by this pool.
+
+
+
+
+ Constructs a new instance of a memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+ Frees all resources used by the memory pool.
+
+
+
+
+
+ This enum defines the various potential status that can be returned from Span-based operations
+ that support processing of input contained in multiple discontiguous buffers.
+
+
+
+
+ The entire input buffer has been processed and the operation is complete.
+
+
+
+
+ The input is partially processed, up to what could fit into the destination buffer.
+ The caller can enlarge the destination buffer, slice the buffers appropriately, and retry.
+
+
+
+
+ The input is partially processed, up to the last valid chunk of the input that could be consumed.
+ The caller can stitch the remaining unprocessed input with more data, slice the buffers appropriately, and retry.
+
+
+
+
+ The input contained invalid bytes which could not be processed. If the input is partially processed,
+ the destination contains the partial result. This guarantees that no additional data appended to the input
+ will make the invalid sequence valid.
+
+
+
+
+ Represents a sequence that can read a sequential series of .
+
+
+
+
+ Returns empty
+
+
+
+
+ Length of the .
+
+
+
+
+ Determines if the is empty.
+
+
+
+
+ Determines if the contains a single segment.
+
+
+
+
+ Gets from the first segment.
+
+
+
+
+ A position to the start of the .
+
+
+
+
+ A position to the end of the
+
+
+
+
+ Creates an instance of from linked memory list represented by start and end segments
+ and corresponding indexes in them.
+
+
+
+
+ Creates an instance of from the .
+
+
+
+
+ Creates an instance of from the , start and index.
+
+
+
+
+ Creates an instance of from the .
+ Consumer is expected to manage lifetime of memory until is not used anymore.
+
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , with items
+
+ The index at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The index at which to begin this slice.
+ The end (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at ', with items
+
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at (inclusive).
+
+ The starting (inclusive) at which to begin this slice.
+ The ending (inclusive) of the slice
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The starting (inclusive) at which to begin this slice.
+
+
+
+ Forms a slice out of the given , beginning at , ending at the existing 's end.
+
+ The start index at which to begin this slice.
+
+
+
+
+
+
+ Returns an enumerator over the
+
+
+
+
+ Returns a new at an from the start of the sequence.
+
+
+
+
+ Returns a new at an from the
+
+
+
+
+ Tries to retrieve next segment after and return its contents in .
+ Returns false if end of was reached otherwise true.
+ Sets to the beginning of next segment if is set to true.
+
+
+
+
+ An enumerator over the
+
+
+
+ Initialize the enumerator.
+ The to enumerate.
+
+
+
+ The current
+
+
+
+
+ Moves to the next in the
+
+
+
+
+
+ Represents a linked list of nodes.
+
+
+
+
+ The value for current node.
+
+
+
+
+ The next node.
+
+
+
+
+ The sum of node length before current.
+
+
+
+
+ Represents a standard formatting string without using an actual String. A StandardFormat consists of a character (such as 'G', 'D' or 'X')
+ and an optional precision ranging from 0..99, or the special value NoPrecision.
+
+
+
+
+ Precision values for format that don't use a precision, or for when the precision is to be unspecified.
+
+
+
+
+ The maximum valid precision value.
+
+
+
+
+ The character component of the format.
+
+
+
+
+ The precision component of the format. Ranges from 0..9 or the special value NoPrecision.
+
+
+
+
+ true if Precision is a value other than NoPrecision
+
+
+
+
+ true if the StandardFormat == default(StandardFormat)
+
+
+
+
+ Create a StandardFormat.
+
+ A type-specific formatting character such as 'G', 'D' or 'X'
+ An optional precision ranging from 0..9 or the special value NoPrecision (the default)
+
+
+
+ Converts a character to a StandardFormat using the NoPrecision precision.
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Converts a classic .NET format string into a StandardFormat
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Compute a hash code.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns the format in classic .NET format.
+
+
+
+
+ Returns true if both the Symbol and Precision are equal.
+
+
+
+
+ Returns false if both the Symbol and Precision are equal.
+
+
+
+
+ Convert between binary data and UTF-8 encoded text that is represented in base 64.
+
+
+
+
+ Decode the span of UTF-8 encoded text represented as base 64 into binary data.
+ If the input is not a multiple of 4, it will decode as much as it can, to the closest multiple of 4.
+
+ The input span which contains UTF-8 encoded text in base 64 that needs to be decoded.
+ The output span which contains the result of the operation, i.e. the decoded binary data.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the decoded input
+ - NeedMoreData - only if isFinalBlock is false and the input is not a multiple of 4, otherwise the partial input would be considered as InvalidData
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4) and isFinalBlock is true.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to deocde base 64 encoded text within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0.
+
+
+
+
+ Decode the span of UTF-8 encoded text in base 64 (in-place) into binary data.
+ The decoded binary output is smaller than the text data contained in the input (the operation deflates the data).
+ If the input is not a multiple of 4, it will not decode any.
+
+ The input span which contains the base 64 text data that needs to be decoded.
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - InvalidData - if the input contains bytes outside of the expected base 64 range, or if it contains invalid/more than two padding characters,
+ or if the input is incomplete (i.e. not a multiple of 4).
+ It does not return DestinationTooSmall since that is not possible for base 64 decoding.
+ It does not return NeedMoreData since this method tramples the data in the buffer and
+ hence can only be called once with all the data in the buffer.
+
+
+
+
+ Encode the span of binary data into UTF-8 encoded text represented as base 64.
+
+ The input span which contains binary data that needs to be encoded.
+ The output span which contains the result of the operation, i.e. the UTF-8 encoded text in base 64.
+ The number of input bytes consumed during the operation. This can be used to slice the input for subsequent calls, if necessary.
+ The number of bytes written into the output span. This can be used to slice the output for subsequent calls, if necessary.
+ True (default) when the input span contains the entire data to decode.
+ Set to false only if it is known that the input span contains partial data with more data to follow.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire input span
+ - DestinationTooSmall - if there is not enough space in the output span to fit the encoded input
+ - NeedMoreData - only if isFinalBlock is false, otherwise the output is padded if the input is not a multiple of 3
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the maximum length (in bytes) of the result if you were to encode binary data within a byte span of size "length".
+
+
+ Thrown when the specified is less than 0 or larger than 1610612733 (since encode inflates the data by 4/3).
+
+
+
+
+ Encode the span of binary data (in-place) into UTF-8 encoded text represented as base 64.
+ The encoded text output is larger than the binary data contained in the input (the operation inflates the data).
+
+ The input span which contains binary data that needs to be encoded.
+ It needs to be large enough to fit the result of the operation.
+ The amount of binary data contained within the buffer that needs to be encoded
+ (and needs to be smaller than the buffer length).
+ The number of bytes written into the buffer.
+ It returns the OperationStatus enum values:
+ - Done - on successful processing of the entire buffer
+ - DestinationTooSmall - if there is not enough space in the buffer beyond dataLength to fit the result of encoding the input
+ It does not return NeedMoreData since this method tramples the data in the buffer and hence can only be called once with all the data in the buffer.
+ It does not return InvalidData since that is not possible for base 64 encoding.
+
+
+
+
+ Returns the symbol contained within the standard format. If the standard format
+ has not been initialized, returns the provided fallback symbol.
+
+
+
+
+ Fills a buffer with the ASCII character '0' (0x30).
+
+
+
+
+ Writes a value [ 0000 .. 9999 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ Writes a value [ 00 .. 99 ] to the buffer starting at the specified offset.
+ This method performs best when the starting index is a constant literal.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ We don't have access to Math.DivRem, so this is a copy of the implementation.
+
+
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+ Methods to format common data types as Utf8 strings.
+
+
+
+
+ Formats a Boolean as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTimeOffset as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a DateTime as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Decimal as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Double as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Single as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Guid as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Used to provide access to the individual bytes of a GUID.
+
+
+
+
+ Formats a Byte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an SByte as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a Unt16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int16 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int32 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a UInt64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats an Int64 as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Formats a TimeSpan as a UTF8 string.
+
+ Value to format
+ Buffer to write the UTF8-formatted value to
+ Receives the length of the formatted text in bytes
+ The standard format to use
+
+ true for success. "bytesWritten" contains the length of the formatted text in bytes.
+ false if buffer was too short. Iteratively increase the size of the buffer and retry until it succeeds.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:][h]h:mm:ss[.f[f[f[f[f[f[f]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Methods to parse common data types to Utf8 strings.
+
+
+
+
+ Parses a Boolean at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) True/False
+ l true/false
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTime at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ default 05/25/2017 10:30:15 -08:00
+ G 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a DateTimeOffset at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G (default) 05/25/2017 10:30:15
+ R Tue, 03 Jan 2017 08:08:05 GMT (RFC 1123)
+ l tue, 03 jan 2017 08:08:05 gmt (Lowercase RFC 1123)
+ O 2017-06-12T05:30:45.7680000-07:00 (Round-trippable)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset factory.
+
+
+
+
+ Overflow-safe DateTimeOffset/Local time conversion factory.
+
+
+
+
+ Overflow-safe DateTime factory.
+
+
+
+
+ Parses a Decimal at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Single at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Double at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ F/f 12.45 Fixed point
+ E/e 1.245000e1 Exponential
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Guid at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ D (default) nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
+ B {nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
+ P (nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn)
+ N nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a SByte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses an Int64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a Byte at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt16 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt32 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a UInt64 at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ G/g (default)
+ D/d 32767
+ N/n 32,767
+ X/x 7fff
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parses a TimeSpan at the start of a Utf8 string.
+
+ The Utf8 string to parse
+ Receives the parsed value
+ On a successful parse, receives the length in bytes of the substring that was parsed
+ Expected format of the Utf8 string
+
+ true for success. "bytesConsumed" contains the length in bytes of the substring that was parsed.
+ false if the string was not syntactically valid or an overflow or underflow occurred. "bytesConsumed" is set to 0.
+
+
+ Formats supported:
+ c/t/T (default) [-][d.]hh:mm:ss[.fffffff] (constant format)
+ G [-]d:hh:mm:ss.fffffff (general long)
+ g [-][d:]h:mm:ss[.f[f[f[f[f[f[f[]]]]]]] (general short)
+
+
+ System.FormatException if the format is not valid for this data type.
+
+
+
+
+ Parse the fraction portion of a TimeSpan. Must be 1..7 digits. If fewer than 7, zeroes are implied to the right. If more than 7, the TimeSpan
+ parser rejects the string (even if the extra digits are all zeroes.)
+
+
+
+
+ Overflow-safe TryCreateTimeSpan
+
+
+
+
+ Memory represents a contiguous region of arbitrary memory similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 0 index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The number of items in the memory.
+
+ Thrown when the specified is negative.
+
+ For internal infrastructure only
+
+
+
+ Creates a new memory from a memory manager that provides specific method implementations beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The memory manager.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+ Thrown when the specified or is negative.
+
+ For internal infrastructure only
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ Determines whether the specified object is equal to the current object.
+ Returns true if the object is Memory or ReadOnlyMemory and if both objects point to the same array and have the same length.
+
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Serves as the default hash function.
+
+
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+ Extension methods for Span{T}, Memory{T}, and friends.
+
+
+
+
+ Removes all leading and trailing white-space characters from the span.
+
+
+
+
+ Removes all leading white-space characters from the span.
+
+
+
+
+ Removes all trailing white-space characters from the span.
+
+
+
+
+ Removes all leading and trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all trailing occurrences of a specified character.
+
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+
+
+
+ Removes all leading and trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all leading occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Removes all trailing occurrences of a set of characters specified
+ in a readonly span from the span.
+
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ If is empty, white-space characters are removed instead.
+
+
+
+ Indicates whether the specified span contains only white-space characters.
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Searches for the specified value and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the specified value and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The value to search for.
+
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. If not found, returns -1. Values are compared using IEquatable{T}.Equals(T).
+
+ The span to search.
+ The sequence to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator. If not found, returns -1.
+
+ The span to search.
+ The set of values to search for.
+
+
+
+ Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+
+
+
+
+ Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T).
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the start of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Determines whether the specified sequence appears at the end of the span.
+
+
+
+
+ Reverses the sequence of the elements in the entire span.
+
+
+
+
+ Creates a new span over the target array.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the portion of the target array segment.
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new Span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the Span.
+ The number of items in the Span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=array.Length).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new memory over the portion of the target array.
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=segment.Count).
+
+
+
+
+ Copies the contents of the array into the span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source array.
+
+
+
+
+
+ Copies the contents of the array into the memory. If the source
+ and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The array to copy items from.
+ The memory to copy items into.
+
+ Thrown when the destination is shorter than the source array.
+
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Determines whether two sequences overlap in memory.
+
+
+
+
+ Determines whether two sequences overlap in memory and outputs the element offset.
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic interface.
+
+ The element type of the span.
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for a value
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The to use when comparing.
+
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Searches an entire sorted for the specified
+ using the specified generic type.
+
+ The element type of the span.
+ The specific type of .
+ The sorted to search.
+ The object to locate. The value can be null for reference types.
+ The to use when comparing.
+ ///
+ The zero-based index of in the sorted ,
+ if is found; otherwise, a negative number that is the bitwise complement
+ of the index of the next element that is larger than or, if there is
+ no larger element, the bitwise complement of .
+
+
+ is .
+
+
+
+
+ Creates a new span over the portion of the target array.
+
+
+
+
+ Returns a value indicating whether the specified occurs within the .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Determines whether this and the specified span have the same characters
+ when compared using the specified option.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Compares the specified and using the specified ,
+ and returns an integer that indicates their relative position in the sort order.
+ The source span.
+ The value to compare with the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Reports the zero-based index of the first occurrence of the specified in the current .
+ The source span.
+ The value to seek within the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to lowercase,
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase,
+ using the casing rules of the specified culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ An object that supplies culture-specific casing rules.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ Thrown when is null.
+
+
+
+
+ Copies the characters from the source span into the destination, converting each character to uppercase
+ using the casing rules of the invariant culture.
+
+ The source span.
+ The destination span which contains the transformed characters.
+ If the source and destinations overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+
+
+ Determines whether the end of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the end of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Determines whether the beginning of the matches the specified when compared using the specified option.
+
+ The source span.
+ The sequence to compare to the beginning of the source span.
+ One of the enumeration values that determines how the and are compared.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ Returns default when is null.
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+
+ Creates a new readonly span over the portion of the target string.
+
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ Returns default when is null.
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ Returns default when is null.
+
+ Thrown when the specified index is not in range (<0 or >text.Length).
+
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+ Returns default when is null.
+
+ Thrown when the specified index or is not in range.
+
+
+
+
+ Represents a contiguous region of memory, similar to .
+ Unlike , it is not a byref-like type.
+
+
+
+
+ Creates a new memory over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new memory over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+ Creates a new memory over the existing object, start, and length. No validation is performed.
+ The target object.
+ The index at which to begin the memory.
+ The number of items in the memory.
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+
+ The number of items in the memory.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the memory.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given memory, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Returns a span from the memory.
+
+
+
+
+ Copies the contents of the read-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ The Memory to copy items into.
+
+ Thrown when the destination is shorter than the source.
+
+
+
+
+
+ Copies the contents of the readonly-only memory into the destination. If the source
+ and destination overlap, this method behaves as if the original values are in
+ a temporary location before the destination is overwritten.
+
+ If the destination is shorter than the source, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Creates a handle for the memory.
+ The GC will not move the memory until the returned
+ is disposed, enabling taking and using the memory's address.
+
+ An instance with nonprimitive (non-blittable) members cannot be pinned.
+
+
+
+
+
+ Copies the contents from the memory into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+ Determines whether the specified object is equal to the current object.
+
+
+
+ Returns true if the memory points to the same array and has the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+ Returns the hash code for this
+
+
+ Gets the state of the memory as individual fields.
+ The offset.
+ The count.
+ The object.
+
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the read-only span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns a 0-length read-only span whose base is the null pointer.
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new read-only span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new read-only span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the read-only span.
+ The number of items in the read-only span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new read-only span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns the specified element of the read-only span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this read-only span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given read-only span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this read-only span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+ Provides a collection of methods for interoperating with , ,
+ , and .
+
+
+
+
+ Get an array segment from the underlying memory.
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Gets an from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ A indicating if it was successful.
+
+
+
+ Gets an and , from the underlying read-only memory.
+ If unable to get the type, returns false.
+
+ The element type of the .
+ The type of to try and retrive.
+ The memory to get the manager for.
+ The returned manager of the .
+ The offset from the start of the that the represents.
+ The length of the that the represents.
+ A indicating if it was successful.
+
+
+
+ Creates an view of the given to allow
+ the to be used in existing APIs that take an .
+
+ The element type of the .
+ The ReadOnlyMemory to view as an
+ An view of the given
+
+
+ Attempts to get the underlying from a .
+ The memory that may be wrapping a object.
+ The string.
+ The starting location in .
+ The number of items in .
+
+
+
+
+ Reads a structure of type T out of a read-only span of bytes.
+
+
+
+
+ Reads a structure of type T out of a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+
+
+
+
+ Writes a structure of type T into a span of bytes.
+ If the span is too small to contain the type T, return false.
+
+
+
+
+ Creates a new memory over the portion of the pre-pinned target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The pre-pinned target array.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ This method should only be called on an array that is already pinned and
+ that array should not be unpinned while the returned Memory is still in use.
+ Calling this method on an unpinned array could result in memory corruption.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Casts a Span of one primitive type to Span of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to ReadOnlySpan of bytes.
+ That type may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+ The source slice, of type .
+
+ Thrown when contains pointers.
+
+
+ Thrown if the Length property of the new Span would exceed Int32.MaxValue.
+
+
+
+ Creates a from a .
+ The .
+ A representing the same memory as the , but writable.
+
+ must be used with extreme caution. is used
+ to represent immutable data and other memory that is not meant to be written to; instances created
+ by should not be written to. The method exists to enable variables typed
+ as but only used for reading to store a .
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Casts a Span of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Casts a ReadOnlySpan of one primitive type to another primitive type .
+ These types may not contain pointers or references. This is checked at runtime in order to preserve type safety.
+
+
+ Supported only for platforms that support misaligned memory access.
+
+ The source slice, of type .
+
+ Thrown when or contains pointers.
+
+
+
+
+ Provides a collection of methods for interoperating with
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get an array segment from the underlying .
+ If unable to get the array segment, return false with a default array segment.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Get from the underlying .
+ If unable to get the , return false.
+
+
+
+
+ Represents position in non-contiguous set of memory.
+ Properties of this type should not be interpreted by anything but the type that created it.
+
+
+
+
+ Creates new
+
+
+
+
+ Returns object part of this
+
+
+
+
+ Returns integer part of this
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+ Indicates whether the current is equal to another .
+ equality does not guarantee that they point to the same location in
+
+
+
+
+
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+ Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
+ or native memory, or to memory allocated on the stack. It is type- and memory-safe.
+
+
+
+
+ The number of items in the span.
+
+
+
+
+ Returns true if Length is 0.
+
+
+
+
+ Returns false if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ This method is not supported as spans cannot be boxed. To compare two spans, use operator==.
+
+ Always thrown by this method.
+
+
+
+
+
+ This method is not supported as spans cannot be boxed.
+
+ Always thrown by this method.
+
+
+
+
+
+ Defines an implicit conversion of an array to a
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ Returns an empty
+
+
+
+ Gets an enumerator for this span.
+
+
+ Enumerates the elements of a .
+
+
+ The span being enumerated.
+
+
+ The next index to yield.
+
+
+ Initialize the enumerator.
+ The span to enumerate.
+
+
+ Advances the enumerator to the next element of the span.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+ Creates a new span over the entirety of the target array.
+
+ The target array.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+
+
+ Creates a new span over the portion of the target array beginning
+ at 'start' index and ending at 'end' index (exclusive).
+
+ The target array.
+ The index at which to begin the span.
+ The number of items in the span.
+ Returns default when is null.
+ Thrown when is covariant and array's type is not exactly T[].
+
+ Thrown when the specified or end index is not in the range (<0 or >=Length).
+
+
+
+
+ Creates a new span over the target unmanaged buffer. Clearly this
+ is quite dangerous, because we are creating arbitrarily typed T's
+ out of a void*-typed block of memory. And the length is not checked.
+ But if this creation is correct, then all subsequent uses are correct.
+
+ An unmanaged pointer to memory.
+ The number of elements the memory contains.
+
+ Thrown when is reference type or contains pointers and hence cannot be stored in unmanaged memory.
+
+
+ Thrown when the specified is negative.
+
+
+
+
+ Returns a reference to specified element of the Span.
+
+
+
+
+ Thrown when index less than 0 or index greater than or equal to Length
+
+
+
+
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns null reference.
+ It can be used for pinning and is required to support the use of span within a fixed statement.
+
+
+
+
+ Clears the contents of this span.
+
+
+
+
+ Fills the contents of this span with the given value.
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ The span to copy items into.
+
+ Thrown when the destination Span is shorter than the source Span.
+
+
+
+
+
+ Copies the contents of this span into destination span. If the source
+ and destinations overlap, this method behaves as if the original values in
+ a temporary location before the destination is overwritten.
+
+ If the destination span is shorter than the source span, this method
+ return false and no data is written to the destination.
+
+ The span to copy items into.
+
+
+
+ Returns true if left and right point at the same memory and have the same length. Note that
+ this does *not* check to see if the *contents* are equal.
+
+
+
+
+ Defines an implicit conversion of a to a
+
+
+
+
+ For , returns a new instance of string that represents the characters pointed to by the span.
+ Otherwise, returns a with the name of the type and the number of elements.
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start'.
+
+ The index at which to begin this slice.
+
+ Thrown when the specified index is not in range (<0 or >=Length).
+
+
+
+
+ Forms a slice out of the given span, beginning at 'start', of given length
+
+ The index at which to begin this slice.
+ The desired length for the slice (exclusive).
+
+ Thrown when the specified or end index is not in range (<0 or >=Length).
+
+
+
+
+ Copies the contents of this span into a new array. This heap
+ allocates, so should generally be avoided, however it is sometimes
+ necessary to bridge the gap with APIs written in terms of arrays.
+
+
+
+
+ This method is obsolete, use System.Runtime.InteropServices.MemoryMarshal.GetReference instead.
+ Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element
+ would have been stored. Such a reference can be used for pinning but must never be dereferenced.
+
+
+
+
+ Implements the copy functionality used by Span and ReadOnlySpan.
+
+ NOTE: Fast span implements TryCopyTo in corelib and therefore this implementation
+ is only used by portable span. The code must live in code that only compiles
+ for portable span which means either each individual span implementation
+ of this shared code file. Other shared SpanHelper.X.cs files are compiled
+ for both portable and fast span implementations.
+
+
+
+
+ Computes "start + index * sizeof(T)", using the unsigned IntPtr-sized multiplication for 32 and 64 bits.
+
+ Assumptions:
+ Start and index are non-negative, and already pre-validated to be within the valid range of their containing Span.
+
+ If the byte length (Span.Length * sizeof(T)) does an unsigned overflow (i.e. the buffer wraps or is too big to fit within the address space),
+ the behavior is undefined.
+
+
+
+
+
+ Determine if a type is eligible for storage in unmanaged memory.
+ Portable equivalent of RuntimeHelpers.IsReferenceOrContainsReferences{T}()
+
+
+
+ Equals() on Span and ReadOnlySpan is not supported. Use operator== instead.
+
+
+ GetHashCode() on Span and ReadOnlySpan is not supported.
+
+
+ Cannot use type '{0}'. Only value types without pointers or references are supported.
+
+
+ Destination is too short.
+
+
+ Memory<T> has been disposed.
+
+
+ Release all references before disposing this instance.
+
+
+ Format specifier was invalid.
+
+
+ The 'G' format combined with a precision is not supported.
+
+
+ Characters following the format symbol must be a number of {0} or less.
+
+
+ Precision cannot be larger than {0}.
+
+
+ Overlapping spans have mismatching alignment.
+
+
+ End position was not reached during enumeration.
+
+
+ Unexpected segment type.
+
+
+
diff --git a/packages/System.Memory.4.6.3/lib/netstandard2.1/_._ b/packages/System.Memory.4.6.3/lib/netstandard2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.6.1/.signature.p7s b/packages/System.Numerics.Vectors.4.6.1/.signature.p7s
new file mode 100644
index 0000000..81559d9
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/.signature.p7s differ
diff --git a/packages/System.Numerics.Vectors.4.6.1/Icon.png b/packages/System.Numerics.Vectors.4.6.1/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/Icon.png differ
diff --git a/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md b/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md
new file mode 100644
index 0000000..9793ff7
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.6.1/PACKAGE.md
@@ -0,0 +1,25 @@
+## About
+
+Provides hardware-accelerated numeric types, suitable for high-performance processing and graphics applications.
+
+## Main Types
+
+The main types provided by this library are:
+
+- System.Numerics.Matrix3x2
+- System.Numerics.Matrix4x4
+- System.Numerics.Plane
+- System.Numerics.Quaternion
+- System.Numerics.Vector2
+- System.Numerics.Vector3
+- System.Numerics.Vector4
+- System.Numerics.Vector
+- System.Numerics.Vector
+
+## Additional Documentation
+
+- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.vectors
+
+## License
+
+System.Numerics.Vectors is released as open source under the [MIT license](https://licenses.nuget.org/MIT).
diff --git a/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg b/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg
new file mode 100644
index 0000000..9053d75
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/System.Numerics.Vectors.4.6.1.nupkg differ
diff --git a/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets
new file mode 100644
index 0000000..303ce05
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net461/System.Numerics.Vectors.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net462/_._ b/packages/System.Numerics.Vectors.4.6.1/buildTransitive/net462/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..95a6d99
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..2c6356e
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.6.1/lib/net462/System.Numerics.Vectors.xml
@@ -0,0 +1,3451 @@
+
+
+
+ System.Numerics.Vectors
+
+
+
+
+ A structure encapsulating a 3x2 matrix.
+
+
+
+
+ The first element of the first row
+
+
+
+
+ The second element of the first row
+
+
+
+
+ The first element of the second row
+
+
+
+
+ The second element of the second row
+
+
+
+
+ The first element of the third row
+
+
+
+
+ The second element of the third row
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix3x2 from the given components.
+
+
+
+
+ Creates a translation matrix from the given vector.
+
+ The translation position.
+ A translation matrix.
+
+
+
+ Creates a translation matrix from the given X and Y components.
+
+ The X position.
+ The Y position.
+ A translation matrix.
+
+
+
+ Creates a scale matrix from the given X and Y components.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that is offset by a given center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ The center point.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale.
+
+ The scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale with an offset from the given center point.
+
+ The scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale.
+
+ The uniform scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale with an offset from the given center.
+
+ The uniform scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ A skew matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians and a center point.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ A skew matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians.
+
+ The amount of rotation, in radians.
+ A rotation matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians and a center point.
+
+ The amount of rotation, in radians.
+ The center point.
+ A rotation matrix.
+
+
+
+ Calculates the determinant for this matrix.
+ The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1).
+
+ The determinant.
+
+
+
+ Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter.
+
+ The source matrix.
+ The output matrix.
+ True if the operation succeeded, False otherwise.
+
+
+
+ Linearly interpolates from matrix1 to matrix2, based on the third parameter.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Returns a boolean indicating whether the given matrices are equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given matrices are not equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the matrix is equal to the other given matrix.
+
+ The other matrix to test equality against.
+ True if this matrix is equal to other; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 4x4 matrix.
+
+
+
+
+ Value at row 1, column 1 of the matrix.
+
+
+
+
+ Value at row 1, column 2 of the matrix.
+
+
+
+
+ Value at row 1, column 3 of the matrix.
+
+
+
+
+ Value at row 1, column 4 of the matrix.
+
+
+
+
+ Value at row 2, column 1 of the matrix.
+
+
+
+
+ Value at row 2, column 2 of the matrix.
+
+
+
+
+ Value at row 2, column 3 of the matrix.
+
+
+
+
+ Value at row 2, column 4 of the matrix.
+
+
+
+
+ Value at row 3, column 1 of the matrix.
+
+
+
+
+ Value at row 3, column 2 of the matrix.
+
+
+
+
+ Value at row 3, column 3 of the matrix.
+
+
+
+
+ Value at row 3, column 4 of the matrix.
+
+
+
+
+ Value at row 4, column 1 of the matrix.
+
+
+
+
+ Value at row 4, column 2 of the matrix.
+
+
+
+
+ Value at row 4, column 3 of the matrix.
+
+
+
+
+ Value at row 4, column 4 of the matrix.
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix4x4 from the given components.
+
+
+
+
+ Constructs a Matrix4x4 from the given Matrix3x2.
+
+ The source Matrix3x2.
+
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard matrix
+
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ Axis to rotate the billboard around.
+ Forward vector of the camera.
+ Forward vector of the object.
+ The created billboard matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate on the X-axis.
+ The amount to translate on the Y-axis.
+ The amount to translate on the Z-axis.
+ The translation matrix.
+
+
+
+ Creates a scaling matrix.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix.
+
+ The vector containing the amount to scale by on each axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ The vector containing the amount to scale by on each axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis.
+
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+
+ The axis to rotate around.
+ The angle to rotate around the given axis, in radians.
+ The rotation matrix.
+
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+
+ Field of view in the y direction, in radians.
+ Aspect ratio, defined as view space width divided by height.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+
+ Width of the view volume at the near view plane.
+ Height of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a customized, perspective projection matrix.
+
+ Minimum x-value of the view volume at the near view plane.
+ Maximum x-value of the view volume at the near view plane.
+ Minimum y-value of the view volume at the near view plane.
+ Maximum y-value of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to of the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+
+ Width of the view volume.
+ Height of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Builds a customized, orthographic projection matrix.
+
+ Minimum X-value of the view volume.
+ Maximum X-value of the view volume.
+ Minimum Y-value of the view volume.
+ Maximum Y-value of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Creates a view matrix.
+
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+
+ Creates a world matrix with the specified parameters.
+
+ The position of the object; used in translation operations.
+ Forward direction of the object.
+ Upward direction of the object; usually [0, 1, 0].
+ The world matrix.
+
+
+
+ Creates a rotation matrix from the given Quaternion rotation value.
+
+ The source Quaternion.
+ The rotation matrix.
+
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+
+ Angle of rotation, in radians, around the Y-axis.
+ Angle of rotation, in radians, around the X-axis.
+ Angle of rotation, in radians, around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
+
+ The direction from which the light that will cast the shadow is coming.
+ The Plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a Matrix that reflects the coordinate system about a specified Plane.
+
+ The Plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+
+ Calculates the determinant of the matrix.
+
+ The determinant of the matrix.
+
+
+
+ Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix.
+
+ The source matrix to invert.
+ If successful, contains the inverted matrix.
+ True if the source matrix could be inverted; False otherwise.
+
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix.
+ If successful, the out parameters will contained the extracted values.
+
+ The source matrix.
+ The scaling component of the transformation matrix.
+ The rotation component of the transformation matrix.
+ The translation component of the transformation matrix
+ True if the source matrix was successfully decomposed; False otherwise.
+
+
+
+ Transforms the given matrix by applying the given Quaternion rotation.
+
+ The source matrix to transform.
+ The rotation to apply.
+ The transformed matrix.
+
+
+
+ Transposes the rows and columns of a matrix.
+
+ The source matrix.
+ The transposed matrix.
+
+
+
+ Linearly interpolates between the corresponding values of two matrices.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weight of the second source matrix.
+ The interpolated matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a boolean indicating whether the given two matrices are equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given two matrices are not equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether this matrix instance is equal to the other given matrix.
+
+ The matrix to compare this instance to.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 3D Plane
+
+
+
+
+ The normal vector of the Plane.
+
+
+
+
+ The distance of the Plane along its normal from the origin.
+
+
+
+
+ Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+
+ The X-component of the normal.
+ The Y-component of the normal.
+ The Z-component of the normal.
+ The distance of the Plane along its normal from the origin.
+
+
+
+ Constructs a Plane from the given normal and distance along the normal from the origin.
+
+ The Plane's normal vector.
+ The Plane's distance from the origin along its normal vector.
+
+
+
+ Constructs a Plane from the given Vector4.
+
+ A vector whose first 3 elements describe the normal vector,
+ and whose W component defines the distance along that normal from the origin.
+
+
+
+ Creates a Plane that contains the three given points.
+
+ The first point defining the Plane.
+ The second point defining the Plane.
+ The third point defining the Plane.
+ The Plane containing the three points.
+
+
+
+ Creates a new Plane whose normal vector is the source Plane's normal vector normalized.
+
+ The source Plane.
+ The normalized Plane.
+
+
+
+ Transforms a normalized Plane by a Matrix.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The transformation matrix to apply to the Plane.
+ The transformed Plane.
+
+
+
+ Transforms a normalized Plane by a Quaternion rotation.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The Quaternion rotation to apply to the Plane.
+ A new Plane that results from applying the rotation.
+
+
+
+ Calculates the dot product of a Plane and Vector4.
+
+ The Plane.
+ The Vector4.
+ The dot product.
+
+
+
+ Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane.
+
+ The plane.
+ The Vector3.
+ The resulting value.
+
+
+
+ Returns the dot product of a specified Vector3 and the Normal vector of this Plane.
+
+ The plane.
+ The Vector3.
+ The resulting dot product.
+
+
+
+ Returns a boolean indicating whether the two given Planes are equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Planes are not equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Plane is equal to this Plane instance.
+
+ The Plane to compare this instance to.
+ True if the other Plane is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Plane instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Plane; False otherwise.
+
+
+
+ Returns a String representing this Plane instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a four-dimensional vector (x,y,z,w),
+ which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
+
+
+
+
+ Specifies the X-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Y-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Z-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the rotation component of the Quaternion.
+
+
+
+
+ Returns a Quaternion representing no rotation.
+
+
+
+
+ Returns whether the Quaternion is the identity Quaternion.
+
+
+
+
+ Constructs a Quaternion from the given components.
+
+ The X component of the Quaternion.
+ The Y component of the Quaternion.
+ The Z component of the Quaternion.
+ The W component of the Quaternion.
+
+
+
+ Constructs a Quaternion from the given vector and rotation parts.
+
+ The vector part of the Quaternion.
+ The rotation part of the Quaternion.
+
+
+
+ Calculates the length of the Quaternion.
+
+ The computed length of the Quaternion.
+
+
+
+ Calculates the length squared of the Quaternion. This operation is cheaper than Length().
+
+ The length squared of the Quaternion.
+
+
+
+ Divides each component of the Quaternion by the length of the Quaternion.
+
+ The source Quaternion.
+ The normalized Quaternion.
+
+
+
+ Creates the conjugate of a specified Quaternion.
+
+ The Quaternion of which to return the conjugate.
+ A new Quaternion that is the conjugate of the specified one.
+
+
+
+ Returns the inverse of a Quaternion.
+
+ The source Quaternion.
+ The inverted Quaternion.
+
+
+
+ Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector.
+
+ The unit vector to rotate around.
+ This vector must be normalized before calling this function or the resulting Quaternion will be incorrect.
+ The angle, in radians, to rotate around the vector.
+ The created Quaternion.
+
+
+
+ Creates a new Quaternion from the given yaw, pitch, and roll, in radians.
+
+ The yaw angle, in radians, around the Y-axis.
+ The pitch angle, in radians, around the X-axis.
+ The roll angle, in radians, around the Z-axis.
+
+
+
+
+ Creates a Quaternion from the given rotation matrix.
+
+ The rotation matrix.
+ The created Quaternion.
+
+
+
+ Calculates the dot product of two Quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The dot product of the Quaternions.
+
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Linearly interpolates between two quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.
+
+ The first Quaternion rotation in the series.
+ The second Quaternion rotation in the series.
+ A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are not equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance.
+
+ The Quaternion to compare this instance to.
+ True if the other Quaternion is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Quaternion instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Quaternion; False otherwise.
+
+
+
+ Returns a String representing this Quaternion instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure describing the layout of an SSE2-sized register.
+ Contains overlapping fields representing the set of valid numeric types.
+ Allows the generic Vector'T struct to contain an explicit field layout.
+
+
+
+
+ A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent.
+ This struct only supports numerical types. This type is intended to be used as a building block for vectorizing
+ large algorithms. This type is immutable, individual elements cannot be modified.
+
+
+
+
+ Returns the number of elements stored in the vector. This value is hardware dependent.
+
+
+
+
+ Returns a vector containing all zeroes.
+
+
+
+
+ Returns a vector containing all ones.
+
+
+
+
+ Constructs a vector whose components are all value
+
+
+
+
+ Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count.
+
+
+
+
+ Constructs a vector from the given array, starting from the given index.
+ The array must contain at least Vector'T.Count from the given index.
+
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ If the destination array is null
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ The index to start copying to
+ If the destination array is null
+ If index is greater than end of the array or index is less than zero
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Returns the element at the given index.
+
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this vector instance.
+
+ The Object to compare against.
+ True if the Object is equal to this vector; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given vector is equal to this vector instance.
+
+ The vector to compare this instance to.
+ True if the other vector is equal to this instance; False otherwise.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a String representing this vector.
+
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if left and right are not equal; False otherwise.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
+
+
+
+
+ Widens a Vector{Byte} into two Vector{UInt16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt16} into two Vector{UInt32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt32} into two Vector{UInt64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{SByte} into two Vector{Int16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int16} into two Vector{Int32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int32} into two Vector{Int64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Single} into two Vector{Double}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Narrows two Vector{UInt16}'s into one Vector{Byte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Byte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt32}'s into one Vector{UInt16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt64}'s into one Vector{UInt32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int16}'s into one Vector{SByte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{SByte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int32}'s into one Vector{Int16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int64}'s into one Vector{Int32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Double}'s into one Vector{Single}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Single} containing elements narrowed from the source vectors.
+
+
+
+
+ Converts a Vector{Int32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Int64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{Int32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{UInt32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{Int64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{UInt64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any element pairs are equal; False if no element pairs are equal.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right.
+ elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support.
+
+
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimum vector.
+
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximum vector.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first source vector.
+ The second source vector.
+ The dot product.
+
+
+
+ Returns a new vector whose elements are the square roots of the given vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Creates a new vector whose values are the sum of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Creates a new vector whose values are the difference between each pairs of elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Creates a new vector whose values are the product of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The source vector.
+ The scalar factor.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The scalar factor.
+ The source vector.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements
+ by the corresponding elements in the second vector.
+
+ The first source vector.
+ The second source vector.
+ The divided vector.
+
+
+
+ Returns a new vector whose elements are the given vector's elements negated.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ A structure encapsulating two single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0).
+
+
+
+
+ Returns the vector (1,1).
+
+
+
+
+ Returns the vector (1,0).
+
+
+
+
+ Returns the vector (0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector2 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector2; False otherwise.
+
+
+
+ Returns a String representing this Vector2 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+ The destination array.
+
+
+
+ Copies the contents of the vector into the given array, starting from the given index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array
+ or if there are not enough elements to copy.
+
+
+
+ Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance.
+
+ The Vector2 to compare this instance to.
+ True if the other Vector2 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors
+
+ The first source vector
+ The second source vector
+ The maximized vector
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating three single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0).
+
+
+
+
+ Returns the vector (1,1,1).
+
+
+
+
+ Returns the vector (1,0,0).
+
+
+
+
+ Returns the vector (0,1,0).
+
+
+
+
+ Returns the vector (0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector3 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector3; False otherwise.
+
+
+
+ Returns a String representing this Vector3 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a Vector3 from the given Vector2 and a third value.
+
+ The Vector to extract X and Y components from.
+ The Z component.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+ The Z component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance.
+
+ The Vector3 to compare this instance to.
+ True if the other Vector3 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating four single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0,0).
+
+
+
+
+ Returns the vector (1,1,1,1).
+
+
+
+
+ Returns the vector (1,0,0,0).
+
+
+
+
+ Returns the vector (0,1,0,0).
+
+
+
+
+ Returns the vector (0,0,1,0).
+
+
+
+
+ Returns the vector (0,0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector4 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector4; False otherwise.
+
+
+
+ Returns a String representing this Vector4 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector. This operation is cheaper than Length().
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared.
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ The W component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ W component.
+ X component.
+ Y component.
+ Z component.
+
+
+
+ Constructs a Vector4 from the given Vector2 and a Z and W component.
+
+ The vector to use as the X and Y components.
+ The Z component.
+ The W component.
+
+
+
+ Constructs a Vector4 from the given Vector3 and a W component.
+
+ The vector to use as the X, Y, and Z components.
+ The W component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance.
+
+ The Vector4 to compare this instance to.
+ True if the other Vector4 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+ Index was out of bounds:
+
+
+ Number of elements in source vector is greater than the destination array
+
+
+ The method was called with a null array argument.
+
+
+ Specified type is not supported
+
+
+ At least {0} element(s) are expected in the parameter "{1}".
+
+
+
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netcoreapp2.0/_._ b/packages/System.Numerics.Vectors.4.6.1/lib/netcoreapp2.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..3257d7a
Binary files /dev/null and b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.dll differ
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..2c6356e
--- /dev/null
+++ b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.0/System.Numerics.Vectors.xml
@@ -0,0 +1,3451 @@
+
+
+
+ System.Numerics.Vectors
+
+
+
+
+ A structure encapsulating a 3x2 matrix.
+
+
+
+
+ The first element of the first row
+
+
+
+
+ The second element of the first row
+
+
+
+
+ The first element of the second row
+
+
+
+
+ The second element of the second row
+
+
+
+
+ The first element of the third row
+
+
+
+
+ The second element of the third row
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix3x2 from the given components.
+
+
+
+
+ Creates a translation matrix from the given vector.
+
+ The translation position.
+ A translation matrix.
+
+
+
+ Creates a translation matrix from the given X and Y components.
+
+ The X position.
+ The Y position.
+ A translation matrix.
+
+
+
+ Creates a scale matrix from the given X and Y components.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that is offset by a given center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ The center point.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale.
+
+ The scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix from the given vector scale with an offset from the given center point.
+
+ The scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale.
+
+ The uniform scale to use.
+ A scaling matrix.
+
+
+
+ Creates a scale matrix that scales uniformly with the given scale with an offset from the given center.
+
+ The uniform scale to use.
+ The center offset.
+ A scaling matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ A skew matrix.
+
+
+
+ Creates a skew matrix from the given angles in radians and a center point.
+
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ A skew matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians.
+
+ The amount of rotation, in radians.
+ A rotation matrix.
+
+
+
+ Creates a rotation matrix using the given rotation in radians and a center point.
+
+ The amount of rotation, in radians.
+ The center point.
+ A rotation matrix.
+
+
+
+ Calculates the determinant for this matrix.
+ The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1).
+
+ The determinant.
+
+
+
+ Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter.
+
+ The source matrix.
+ The output matrix.
+ True if the operation succeeded, False otherwise.
+
+
+
+ Linearly interpolates from matrix1 to matrix2, based on the third parameter.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Negates the given matrix by multiplying all values by -1.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds each matrix element in value1 with its corresponding element in value2.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the summed values.
+
+
+
+ Subtracts each matrix element in value2 from its corresponding element in value1.
+
+ The first source matrix.
+ The second source matrix.
+ The matrix containing the resulting values.
+
+
+
+ Multiplies two matrices together and returns the resulting matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The product matrix.
+
+
+
+ Scales all elements in a matrix by the given scalar factor.
+
+ The source matrix.
+ The scaling value to use.
+ The resulting matrix.
+
+
+
+ Returns a boolean indicating whether the given matrices are equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given matrices are not equal.
+
+ The first source matrix.
+ The second source matrix.
+ True if the matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the matrix is equal to the other given matrix.
+
+ The other matrix to test equality against.
+ True if this matrix is equal to other; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 4x4 matrix.
+
+
+
+
+ Value at row 1, column 1 of the matrix.
+
+
+
+
+ Value at row 1, column 2 of the matrix.
+
+
+
+
+ Value at row 1, column 3 of the matrix.
+
+
+
+
+ Value at row 1, column 4 of the matrix.
+
+
+
+
+ Value at row 2, column 1 of the matrix.
+
+
+
+
+ Value at row 2, column 2 of the matrix.
+
+
+
+
+ Value at row 2, column 3 of the matrix.
+
+
+
+
+ Value at row 2, column 4 of the matrix.
+
+
+
+
+ Value at row 3, column 1 of the matrix.
+
+
+
+
+ Value at row 3, column 2 of the matrix.
+
+
+
+
+ Value at row 3, column 3 of the matrix.
+
+
+
+
+ Value at row 3, column 4 of the matrix.
+
+
+
+
+ Value at row 4, column 1 of the matrix.
+
+
+
+
+ Value at row 4, column 2 of the matrix.
+
+
+
+
+ Value at row 4, column 3 of the matrix.
+
+
+
+
+ Value at row 4, column 4 of the matrix.
+
+
+
+
+ Returns the multiplicative identity matrix.
+
+
+
+
+ Returns whether the matrix is the identity matrix.
+
+
+
+
+ Gets or sets the translation component of this matrix.
+
+
+
+
+ Constructs a Matrix4x4 from the given components.
+
+
+
+
+ Constructs a Matrix4x4 from the given Matrix3x2.
+
+ The source Matrix3x2.
+
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard matrix
+
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+
+ Position of the object the billboard will rotate around.
+ Position of the camera.
+ Axis to rotate the billboard around.
+ Forward vector of the camera.
+ Forward vector of the object.
+ The created billboard matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+
+ Creates a translation matrix.
+
+ The amount to translate on the X-axis.
+ The amount to translate on the Y-axis.
+ The amount to translate on the Z-axis.
+ The translation matrix.
+
+
+
+ Creates a scaling matrix.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ Value to scale by on the X-axis.
+ Value to scale by on the Y-axis.
+ Value to scale by on the Z-axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix.
+
+ The vector containing the amount to scale by on each axis.
+ The scaling matrix.
+
+
+
+ Creates a scaling matrix with a center point.
+
+ The vector containing the amount to scale by on each axis.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis.
+
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the X-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the X-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Y-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a matrix for rotating points around the Z-axis, from a center point.
+
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+
+ The axis to rotate around.
+ The angle to rotate around the given axis, in radians.
+ The rotation matrix.
+
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+
+ Field of view in the y direction, in radians.
+ Aspect ratio, defined as view space width divided by height.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+
+ Width of the view volume at the near view plane.
+ Height of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates a customized, perspective projection matrix.
+
+ Minimum x-value of the view volume at the near view plane.
+ Maximum x-value of the view volume at the near view plane.
+ Minimum y-value of the view volume at the near view plane.
+ Maximum y-value of the view volume at the near view plane.
+ Distance to the near view plane.
+ Distance to of the far view plane.
+ The perspective projection matrix.
+
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+
+ Width of the view volume.
+ Height of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Builds a customized, orthographic projection matrix.
+
+ Minimum X-value of the view volume.
+ Maximum X-value of the view volume.
+ Minimum Y-value of the view volume.
+ Maximum Y-value of the view volume.
+ Minimum Z-value of the view volume.
+ Maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+
+ Creates a view matrix.
+
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+
+ Creates a world matrix with the specified parameters.
+
+ The position of the object; used in translation operations.
+ Forward direction of the object.
+ Upward direction of the object; usually [0, 1, 0].
+ The world matrix.
+
+
+
+ Creates a rotation matrix from the given Quaternion rotation value.
+
+ The source Quaternion.
+ The rotation matrix.
+
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+
+ Angle of rotation, in radians, around the Y-axis.
+ Angle of rotation, in radians, around the X-axis.
+ Angle of rotation, in radians, around the Z-axis.
+ The rotation matrix.
+
+
+
+ Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
+
+ The direction from which the light that will cast the shadow is coming.
+ The Plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+
+ Creates a Matrix that reflects the coordinate system about a specified Plane.
+
+ The Plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+
+ Calculates the determinant of the matrix.
+
+ The determinant of the matrix.
+
+
+
+ Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix.
+
+ The source matrix to invert.
+ If successful, contains the inverted matrix.
+ True if the source matrix could be inverted; False otherwise.
+
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix.
+ If successful, the out parameters will contained the extracted values.
+
+ The source matrix.
+ The scaling component of the transformation matrix.
+ The rotation component of the transformation matrix.
+ The translation component of the transformation matrix
+ True if the source matrix was successfully decomposed; False otherwise.
+
+
+
+ Transforms the given matrix by applying the given Quaternion rotation.
+
+ The source matrix to transform.
+ The rotation to apply.
+ The transformed matrix.
+
+
+
+ Transposes the rows and columns of a matrix.
+
+ The source matrix.
+ The transposed matrix.
+
+
+
+ Linearly interpolates between the corresponding values of two matrices.
+
+ The first source matrix.
+ The second source matrix.
+ The relative weight of the second source matrix.
+ The interpolated matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a new matrix with the negated elements of the given matrix.
+
+ The source matrix.
+ The negated matrix.
+
+
+
+ Adds two matrices together.
+
+ The first source matrix.
+ The second source matrix.
+ The resulting matrix.
+
+
+
+ Subtracts the second matrix from the first.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the subtraction.
+
+
+
+ Multiplies a matrix by another matrix.
+
+ The first source matrix.
+ The second source matrix.
+ The result of the multiplication.
+
+
+
+ Multiplies a matrix by a scalar value.
+
+ The source matrix.
+ The scaling factor.
+ The scaled matrix.
+
+
+
+ Returns a boolean indicating whether the given two matrices are equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given two matrices are not equal.
+
+ The first matrix to compare.
+ The second matrix to compare.
+ True if the given matrices are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether this matrix instance is equal to the other given matrix.
+
+ The matrix to compare this instance to.
+ True if the matrices are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this matrix instance.
+
+ The Object to compare against.
+ True if the Object is equal to this matrix; False otherwise.
+
+
+
+ Returns a String representing this matrix instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a 3D Plane
+
+
+
+
+ The normal vector of the Plane.
+
+
+
+
+ The distance of the Plane along its normal from the origin.
+
+
+
+
+ Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+
+ The X-component of the normal.
+ The Y-component of the normal.
+ The Z-component of the normal.
+ The distance of the Plane along its normal from the origin.
+
+
+
+ Constructs a Plane from the given normal and distance along the normal from the origin.
+
+ The Plane's normal vector.
+ The Plane's distance from the origin along its normal vector.
+
+
+
+ Constructs a Plane from the given Vector4.
+
+ A vector whose first 3 elements describe the normal vector,
+ and whose W component defines the distance along that normal from the origin.
+
+
+
+ Creates a Plane that contains the three given points.
+
+ The first point defining the Plane.
+ The second point defining the Plane.
+ The third point defining the Plane.
+ The Plane containing the three points.
+
+
+
+ Creates a new Plane whose normal vector is the source Plane's normal vector normalized.
+
+ The source Plane.
+ The normalized Plane.
+
+
+
+ Transforms a normalized Plane by a Matrix.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The transformation matrix to apply to the Plane.
+ The transformed Plane.
+
+
+
+ Transforms a normalized Plane by a Quaternion rotation.
+
+ The normalized Plane to transform.
+ This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.
+ The Quaternion rotation to apply to the Plane.
+ A new Plane that results from applying the rotation.
+
+
+
+ Calculates the dot product of a Plane and Vector4.
+
+ The Plane.
+ The Vector4.
+ The dot product.
+
+
+
+ Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane.
+
+ The plane.
+ The Vector3.
+ The resulting value.
+
+
+
+ Returns the dot product of a specified Vector3 and the Normal vector of this Plane.
+
+ The plane.
+ The Vector3.
+ The resulting dot product.
+
+
+
+ Returns a boolean indicating whether the two given Planes are equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Planes are not equal.
+
+ The first Plane to compare.
+ The second Plane to compare.
+ True if the Planes are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Plane is equal to this Plane instance.
+
+ The Plane to compare this instance to.
+ True if the other Plane is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Plane instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Plane; False otherwise.
+
+
+
+ Returns a String representing this Plane instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure encapsulating a four-dimensional vector (x,y,z,w),
+ which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
+
+
+
+
+ Specifies the X-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Y-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the Z-value of the vector component of the Quaternion.
+
+
+
+
+ Specifies the rotation component of the Quaternion.
+
+
+
+
+ Returns a Quaternion representing no rotation.
+
+
+
+
+ Returns whether the Quaternion is the identity Quaternion.
+
+
+
+
+ Constructs a Quaternion from the given components.
+
+ The X component of the Quaternion.
+ The Y component of the Quaternion.
+ The Z component of the Quaternion.
+ The W component of the Quaternion.
+
+
+
+ Constructs a Quaternion from the given vector and rotation parts.
+
+ The vector part of the Quaternion.
+ The rotation part of the Quaternion.
+
+
+
+ Calculates the length of the Quaternion.
+
+ The computed length of the Quaternion.
+
+
+
+ Calculates the length squared of the Quaternion. This operation is cheaper than Length().
+
+ The length squared of the Quaternion.
+
+
+
+ Divides each component of the Quaternion by the length of the Quaternion.
+
+ The source Quaternion.
+ The normalized Quaternion.
+
+
+
+ Creates the conjugate of a specified Quaternion.
+
+ The Quaternion of which to return the conjugate.
+ A new Quaternion that is the conjugate of the specified one.
+
+
+
+ Returns the inverse of a Quaternion.
+
+ The source Quaternion.
+ The inverted Quaternion.
+
+
+
+ Creates a Quaternion from a normalized vector axis and an angle to rotate about the vector.
+
+ The unit vector to rotate around.
+ This vector must be normalized before calling this function or the resulting Quaternion will be incorrect.
+ The angle, in radians, to rotate around the vector.
+ The created Quaternion.
+
+
+
+ Creates a new Quaternion from the given yaw, pitch, and roll, in radians.
+
+ The yaw angle, in radians, around the Y-axis.
+ The pitch angle, in radians, around the X-axis.
+ The roll angle, in radians, around the Z-axis.
+
+
+
+
+ Creates a Quaternion from the given rotation matrix.
+
+ The rotation matrix.
+ The created Quaternion.
+
+
+
+ Calculates the dot product of two Quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The dot product of the Quaternions.
+
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Linearly interpolates between two quaternions.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The relative weight of the second source Quaternion in the interpolation.
+ The interpolated Quaternion.
+
+
+
+ Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.
+
+ The first Quaternion rotation in the series.
+ The second Quaternion rotation in the series.
+ A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Flips the sign of each component of the quaternion.
+
+ The source Quaternion.
+ The negated Quaternion.
+
+
+
+ Adds two Quaternions element-by-element.
+
+ The first source Quaternion.
+ The second source Quaternion.
+ The result of adding the Quaternions.
+
+
+
+ Subtracts one Quaternion from another.
+
+ The first source Quaternion.
+ The second Quaternion, to be subtracted from the first.
+ The result of the subtraction.
+
+
+
+ Multiplies two Quaternions together.
+
+ The Quaternion on the left side of the multiplication.
+ The Quaternion on the right side of the multiplication.
+ The result of the multiplication.
+
+
+
+ Multiplies a Quaternion by a scalar value.
+
+ The source Quaternion.
+ The scalar value.
+ The result of the multiplication.
+
+
+
+ Divides a Quaternion by another Quaternion.
+
+ The source Quaternion.
+ The divisor.
+ The result of the division.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given Quaternions are not equal.
+
+ The first Quaternion to compare.
+ The second Quaternion to compare.
+ True if the Quaternions are not equal; False if they are equal.
+
+
+
+ Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance.
+
+ The Quaternion to compare this instance to.
+ True if the other Quaternion is equal to this instance; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Quaternion instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Quaternion; False otherwise.
+
+
+
+ Returns a String representing this Quaternion instance.
+
+ The string representation.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ A structure describing the layout of an SSE2-sized register.
+ Contains overlapping fields representing the set of valid numeric types.
+ Allows the generic Vector'T struct to contain an explicit field layout.
+
+
+
+
+ A structure that represents a single Vector. The count of this Vector is fixed but CPU register dependent.
+ This struct only supports numerical types. This type is intended to be used as a building block for vectorizing
+ large algorithms. This type is immutable, individual elements cannot be modified.
+
+
+
+
+ Returns the number of elements stored in the vector. This value is hardware dependent.
+
+
+
+
+ Returns a vector containing all zeroes.
+
+
+
+
+ Returns a vector containing all ones.
+
+
+
+
+ Constructs a vector whose components are all value
+
+
+
+
+ Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count.
+
+
+
+
+ Constructs a vector from the given array, starting from the given index.
+ The array must contain at least Vector'T.Count from the given index.
+
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ If the destination array is null
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Copies the vector to the given destination array. The destination array must be at least size Vector'T.Count.
+
+ The destination array which the values are copied into
+ The index to start copying to
+ If the destination array is null
+ If index is greater than end of the array or index is less than zero
+ If number of elements in source vector is greater than those available in destination array
+
+
+
+ Returns the element at the given index.
+
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this vector instance.
+
+ The Object to compare against.
+ True if the Object is equal to this vector; False otherwise.
+
+
+
+ Returns a boolean indicating whether the given vector is equal to this vector instance.
+
+ The vector to compare this instance to.
+ True if the other vector is equal to this instance; False otherwise.
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a String representing this vector.
+
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this vector, using the specified format string to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if left and right are not equal; False otherwise.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of another type.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
+
+
+
+
+ Widens a Vector{Byte} into two Vector{UInt16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt16} into two Vector{UInt32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{UInt32} into two Vector{UInt64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{SByte} into two Vector{Int16}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int16} into two Vector{Int32}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Int32} into two Vector{Int64}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Widens a Vector{Single} into two Vector{Double}'s.
+ The source vector whose elements are widened into the outputs.
+ The first output vector, whose elements will contain the widened elements from lower indices in the source vector.
+ The second output vector, whose elements will contain the widened elements from higher indices in the source vector.
+
+
+
+
+ Narrows two Vector{UInt16}'s into one Vector{Byte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Byte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt32}'s into one Vector{UInt16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{UInt64}'s into one Vector{UInt32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{UInt32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int16}'s into one Vector{SByte}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{SByte} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int32}'s into one Vector{Int16}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int16} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Int64}'s into one Vector{Int32}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Int32} containing elements narrowed from the source vectors.
+
+
+
+
+ Narrows two Vector{Double}'s into one Vector{Single}.
+ The first source vector, whose elements become the lower-index elements of the return value.
+ The second source vector, whose elements become the higher-index elements of the return value.
+ A Vector{Single} containing elements narrowed from the source vectors.
+
+
+
+
+ Converts a Vector{Int32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt32} to a Vector{Single}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Int64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{UInt64} to a Vector{Double}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{Int32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Single} to a Vector{UInt32}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{Int64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Converts a Vector{Double} to a Vector{UInt64}.
+
+ The source vector.
+ The converted vector.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Creates a new vector with elements selected between the two given source vectors, and based on a mask vector.
+
+ The mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether elements in the left and right floating point vectors were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left and right were equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether each pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The first vector to compare.
+ True if all elements are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether any single pair of elements in the given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any element pairs are equal; False if no element pairs are equal.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are less than their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were less than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are less than or equal to their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are less than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is less than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are less than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a boolean indicating whether all elements in left are greater than the corresponding elements in right.
+ elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than their corresponding elements in right; False otherwise.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements signal whether the elements in left were greater than or equal to their
+ corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant vector.
+
+
+
+ Returns an integral vector whose elements signal whether the elements in left were greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ The resultant integral vector.
+
+
+
+ Returns a boolean indicating whether all of the elements in left are greater than or equal to
+ their corresponding elements in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if all elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns a boolean indicating whether any element in left is greater than or equal to its corresponding element in right.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if any elements in left are greater than or equal to their corresponding elements in right; False otherwise.
+
+
+
+ Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support.
+
+
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimum vector.
+
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximum vector.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first source vector.
+ The second source vector.
+ The dot product.
+
+
+
+ Returns a new vector whose elements are the square roots of the given vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Creates a new vector whose values are the sum of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Creates a new vector whose values are the difference between each pairs of elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Creates a new vector whose values are the product of each pair of elements from the two given vectors.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The source vector.
+ The scalar factor.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the values of the given vector each multiplied by a scalar value.
+
+ The scalar factor.
+ The source vector.
+ The scaled vector.
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements
+ by the corresponding elements in the second vector.
+
+ The first source vector.
+ The second source vector.
+ The divided vector.
+
+
+
+ Returns a new vector whose elements are the given vector's elements negated.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a new vector by performing a bitwise-and operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of the given vector's elements.
+
+ The source vector.
+ The one's complement vector.
+
+
+
+ Returns a new vector by performing a bitwise-exclusive-or operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Returns a new vector by performing a bitwise-and-not operation on each of the elements in the given vectors.
+
+ The first source vector.
+ The second source vector.
+ The resultant vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed bytes.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 16-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 32-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of unsigned 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of signed 64-bit integers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 32-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ Reinterprets the bits of the given vector into those of a vector of 64-bit floating point numbers.
+
+ The source vector
+ The reinterpreted vector.
+
+
+
+ A structure encapsulating two single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0).
+
+
+
+
+ Returns the vector (1,1).
+
+
+
+
+ Returns the vector (1,0).
+
+
+
+
+ Returns the vector (0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector2 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector2; False otherwise.
+
+
+
+ Returns a String representing this Vector2 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector2 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+ The destination array.
+
+
+
+ Copies the contents of the vector into the given array, starting from the given index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array
+ or if there are not enough elements to copy.
+
+
+
+ Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance.
+
+ The Vector2 to compare this instance to.
+ True if the other Vector2 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors
+
+ The first source vector
+ The second source vector
+ The maximized vector
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating three single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0).
+
+
+
+
+ Returns the vector (1,1,1).
+
+
+
+
+ Returns the vector (1,0,0).
+
+
+
+
+ Returns the vector (0,1,0).
+
+
+
+
+ Returns the vector (0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector3 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector3; False otherwise.
+
+
+
+ Returns a String representing this Vector3 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector3 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector.
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared. This operation is cheaper than Length().
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Computes the cross product of two vectors.
+
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector normal by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a Vector3 from the given Vector2 and a third value.
+
+ The Vector to extract X and Y components from.
+ The Z component.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ The X component.
+ The Y component.
+ The Z component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance.
+
+ The Vector3 to compare this instance to.
+ True if the other Vector3 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+
+ A structure encapsulating four single precision floating point values and provides hardware accelerated methods.
+
+
+
+
+ Returns the vector (0,0,0,0).
+
+
+
+
+ Returns the vector (1,1,1,1).
+
+
+
+
+ Returns the vector (1,0,0,0).
+
+
+
+
+ Returns the vector (0,1,0,0).
+
+
+
+
+ Returns the vector (0,0,1,0).
+
+
+
+
+ Returns the vector (0,0,0,1).
+
+
+
+
+ Returns the hash code for this instance.
+
+ The hash code.
+
+
+
+ Returns a boolean indicating whether the given Object is equal to this Vector4 instance.
+
+ The Object to compare against.
+ True if the Object is equal to this Vector4; False otherwise.
+
+
+
+ Returns a String representing this Vector4 instance.
+
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements.
+
+ The format of individual elements.
+ The string representation.
+
+
+
+ Returns a String representing this Vector4 instance, using the specified format to format individual elements
+ and the given IFormatProvider.
+
+ The format of individual elements.
+ The format provider to use when formatting elements.
+ The string representation.
+
+
+
+ Returns the length of the vector. This operation is cheaper than Length().
+
+ The vector's length.
+
+
+
+ Returns the length of the vector squared.
+
+ The vector's length squared.
+
+
+
+ Returns the Euclidean distance between the two given points.
+
+ The first point.
+ The second point.
+ The distance.
+
+
+
+ Returns the Euclidean distance squared between the two given points.
+
+ The first point.
+ The second point.
+ The distance squared.
+
+
+
+ Returns a vector with the same direction as the given vector, but with a length of 1.
+
+ The vector to normalize.
+ The normalized vector.
+
+
+
+ Restricts a vector between a min and max value.
+
+ The source vector.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+
+ Linearly interpolates between two vectors based on the given weighting.
+
+ The first source vector.
+ The second source vector.
+ Value between 0 and 1 indicating the weight of the second source vector.
+ The interpolated vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given matrix.
+
+ The source vector.
+ The transformation matrix.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Transforms a vector by the given Quaternion rotation value.
+
+ The source vector to be rotated.
+ The rotation to apply.
+ The transformed vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ The X component of the vector.
+
+
+
+
+ The Y component of the vector.
+
+
+
+
+ The Z component of the vector.
+
+
+
+
+ The W component of the vector.
+
+
+
+
+ Constructs a vector whose elements are all the single specified value.
+
+ The element to fill the vector with.
+
+
+
+ Constructs a vector with the given individual elements.
+
+ W component.
+ X component.
+ Y component.
+ Z component.
+
+
+
+ Constructs a Vector4 from the given Vector2 and a Z and W component.
+
+ The vector to use as the X and Y components.
+ The Z component.
+ The W component.
+
+
+
+ Constructs a Vector4 from the given Vector3 and a W component.
+
+ The vector to use as the X, Y, and Z components.
+ The W component.
+
+
+
+ Copies the contents of the vector into the given array.
+
+
+
+
+ Copies the contents of the vector into the given array, starting from index.
+
+ If array is null.
+ If array is multidimensional.
+ If index is greater than end of the array or index is less than zero.
+ If number of elements in source vector is greater than those available in destination array.
+
+
+
+ Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance.
+
+ The Vector4 to compare this instance to.
+ True if the other Vector4 is equal to this instance; False otherwise.
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The minimized vector.
+
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+
+ The first source vector.
+ The second source vector.
+ The maximized vector.
+
+
+
+ Returns a vector whose elements are the absolute values of each of the source vector's elements.
+
+ The source vector.
+ The absolute value vector.
+
+
+
+ Returns a vector whose elements are the square root of each of the source vector's elements.
+
+ The source vector.
+ The square root vector.
+
+
+
+ Adds two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The summed vector.
+
+
+
+ Subtracts the second vector from the first.
+
+ The first source vector.
+ The second source vector.
+ The difference vector.
+
+
+
+ Multiplies two vectors together.
+
+ The first source vector.
+ The second source vector.
+ The product vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The scaled vector.
+
+
+
+ Multiplies a vector by the given scalar.
+
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+
+ Divides the first vector by the second.
+
+ The first source vector.
+ The second source vector.
+ The vector resulting from the division.
+
+
+
+ Divides the vector by the given scalar.
+
+ The source vector.
+ The scalar value.
+ The result of the division.
+
+
+
+ Negates a given vector.
+
+ The source vector.
+ The negated vector.
+
+
+
+ Returns a boolean indicating whether the two given vectors are equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are equal; False otherwise.
+
+
+
+ Returns a boolean indicating whether the two given vectors are not equal.
+
+ The first vector to compare.
+ The second vector to compare.
+ True if the vectors are not equal; False if they are equal.
+
+
+ Index was out of bounds:
+
+
+ Number of elements in source vector is greater than the destination array
+
+
+ The method was called with a null array argument.
+
+
+ Specified type is not supported
+
+
+ At least {0} element(s) are expected in the parameter "{1}".
+
+
+
diff --git a/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.1/_._ b/packages/System.Numerics.Vectors.4.6.1/lib/netstandard2.1/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s
new file mode 100644
index 0000000..6ba5099
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/.signature.p7s differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png
new file mode 100644
index 0000000..a0f1fdb
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/Icon.png differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md
new file mode 100644
index 0000000..ba003b0
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/PACKAGE.md
@@ -0,0 +1,17 @@
+## About
+
+Provides the System.Runtime.CompilerServices.Unsafe class, which provides generic, low-level functionality for manipulating pointers and managed byrefs.
+
+## Main Types
+
+The main types provided by this library are:
+
+- System.Runtime.CompilerServices.Unsafe
+
+## Additional Documentation
+
+- API reference can be found in: https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.unsafe
+
+## License
+
+System.Runtime.CompilerServices.Unsafe is released as open source under the [MIT license](https://licenses.nuget.org/MIT).
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg
new file mode 100644
index 0000000..5949e7c
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/System.Runtime.CompilerServices.Unsafe.6.1.2.nupkg differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets
new file mode 100644
index 0000000..dee6e54
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net461/System.Runtime.CompilerServices.Unsafe.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net462/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net462/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net6.0/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/net6.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets
new file mode 100644
index 0000000..806acd6
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..7795684
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..7acab80
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net462/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,353 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A reference to the value to copy.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A pointer to the value to copy.
+
+
+
+ Returns a pointer to the given by-ref parameter.
+
+ The type of object.
+ The object whose pointer is obtained.
+ A pointer to the given value.
+
+
+
+ Returns the size of an object of the given type parameter.
+
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+
+ Casts the given object to the specified type, performs no dynamic type checking.
+
+ The type which the object will be cast to.
+ The object to cast.
+ The original object, casted to the given type.
+
+
+
+ Reinterprets the given location as a reference to a value of type .
+
+ The type of the interpreted location.
+ The location of the value to reference.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given read-only reference as a reference.
+
+ The type of reference.
+ The read-only reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given reference as a reference to a value of type .
+
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ The reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Returns a reference to the value type contained with the specified box object.
+
+ The type of the value type contained within the box.
+ The boxed value type.
+ A reference to a value of type in the box object.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given pointer.
+
+ The type of reference.
+ The pointer to add the offset to.
+ The offset to add.
+ A new pointer that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Determines the byte offset from origin to target from the given references.
+
+ The type of reference.
+ The reference to origin.
+ The reference to target.
+ Byte offset from origin to target i.e. - .
+
+
+
+ Determines whether the specified references point to the same location.
+
+ The first reference to compare.
+ The second reference to compare.
+ true if and point to the same location; otherwise false.
+
+
+
+ Determines whether the memory address referenced by is greater than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is greater than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Determines whether the memory address referenced by is less than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is less than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Returns if a given reference to a value of type is a null reference.
+
+ The reference to check.
+ This check is conceptually similar to "(void*)(&source) == nullptr".
+
+
+
+ Returns a reference to a value of type that is a null reference.
+
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..53524fb
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..7acab80
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,353 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A reference to the value to copy.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A pointer to the value to copy.
+
+
+
+ Returns a pointer to the given by-ref parameter.
+
+ The type of object.
+ The object whose pointer is obtained.
+ A pointer to the given value.
+
+
+
+ Returns the size of an object of the given type parameter.
+
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+
+ Casts the given object to the specified type, performs no dynamic type checking.
+
+ The type which the object will be cast to.
+ The object to cast.
+ The original object, casted to the given type.
+
+
+
+ Reinterprets the given location as a reference to a value of type .
+
+ The type of the interpreted location.
+ The location of the value to reference.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given read-only reference as a reference.
+
+ The type of reference.
+ The read-only reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given reference as a reference to a value of type .
+
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ The reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Returns a reference to the value type contained with the specified box object.
+
+ The type of the value type contained within the box.
+ The boxed value type.
+ A reference to a value of type in the box object.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given pointer.
+
+ The type of reference.
+ The pointer to add the offset to.
+ The offset to add.
+ A new pointer that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Determines the byte offset from origin to target from the given references.
+
+ The type of reference.
+ The reference to origin.
+ The reference to target.
+ Byte offset from origin to target i.e. - .
+
+
+
+ Determines whether the specified references point to the same location.
+
+ The first reference to compare.
+ The second reference to compare.
+ true if and point to the same location; otherwise false.
+
+
+
+ Determines whether the memory address referenced by is greater than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is greater than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Determines whether the memory address referenced by is less than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is less than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Returns if a given reference to a value of type is a null reference.
+
+ The reference to check.
+ This check is conceptually similar to "(void*)(&source) == nullptr".
+
+
+
+ Returns a reference to a value of type that is a null reference.
+
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net7.0/_._ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/net7.0/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..6e91f06
Binary files /dev/null and b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..7acab80
--- /dev/null
+++ b/packages/System.Runtime.CompilerServices.Unsafe.6.1.2/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,353 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Reads a value of type from the given location.
+
+ The type to read.
+ The location to read from.
+ An object of type read from the given location.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Writes a value of type to the given location.
+
+ The type of value to write.
+ The location to write to.
+ The value to write.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A reference to the value to copy.
+
+
+
+ Copies a value of type to the given location.
+
+ The type of value to copy.
+ The location to copy to.
+ A pointer to the value to copy.
+
+
+
+ Returns a pointer to the given by-ref parameter.
+
+ The type of object.
+ The object whose pointer is obtained.
+ A pointer to the given value.
+
+
+
+ Returns the size of an object of the given type parameter.
+
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+
+ Casts the given object to the specified type, performs no dynamic type checking.
+
+ The type which the object will be cast to.
+ The object to cast.
+ The original object, casted to the given type.
+
+
+
+ Reinterprets the given location as a reference to a value of type .
+
+ The type of the interpreted location.
+ The location of the value to reference.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given read-only reference as a reference.
+
+ The type of reference.
+ The read-only reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Reinterprets the given reference as a reference to a value of type .
+
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ The reference to reinterpret.
+ A reference to a value of type .
+
+
+
+ Returns a reference to the value type contained with the specified box object.
+
+ The type of the value type contained within the box.
+ The boxed value type.
+ A reference to a value of type in the box object.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given pointer.
+
+ The type of reference.
+ The pointer to add the offset to.
+ The offset to add.
+ A new pointer that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds an element offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Adds a byte offset to the given reference.
+
+ The type of reference.
+ The reference to add the offset to.
+ The offset to add.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts an element offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Subtracts a byte offset from the given reference.
+
+ The type of reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+
+ Determines the byte offset from origin to target from the given references.
+
+ The type of reference.
+ The reference to origin.
+ The reference to target.
+ Byte offset from origin to target i.e. - .
+
+
+
+ Determines whether the specified references point to the same location.
+
+ The first reference to compare.
+ The second reference to compare.
+ true if and point to the same location; otherwise false.
+
+
+
+ Determines whether the memory address referenced by is greater than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is greater than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) > (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Determines whether the memory address referenced by is less than the memory address referenced by .
+
+ The first reference to compare.
+ The second reference to compare.
+ true if the memory address referenced by is less than the memory address referenced by ; otherwise false.
+
+ This check is conceptually similar to "(void*)(&left) < (void*)(&right)". Both parameters must reference the same object, array, or span;
+ or the objects being referenced must both be pinned; or both references must represent unmanaged pointers; otherwise the result is undefined.
+
+
+
+
+ Returns if a given reference to a value of type is a null reference.
+
+ The reference to check.
+ This check is conceptually similar to "(void*)(&source) == nullptr".
+
+
+
+ Returns a reference to a value of type that is a null reference.
+
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Copies bytes from the source address to the destination address
+ without assuming architecture dependent alignment of the addresses.
+
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+
+ Initializes a block of memory at the given location with a given initial value
+ without assuming architecture dependent alignment of the address.
+
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+