From 79aa2de9ee6fb655fd4f3556345f8cea26f3bc26 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Wed, 8 Jul 2020 15:30:00 -0700 Subject: [PATCH 01/20] Started on head manager --- .../src/Head/HeadElementBase.cs | 43 +++++++++ .../Web.Extensions/src/Head/HeadManager.cs | 92 +++++++++++++++++++ .../Head/HeadServiceCollectionExtensions.cs | 13 +++ .../Web.Extensions/src/Head/Title.cs | 36 ++++++++ ...spNetCore.Components.Web.Extensions.csproj | 4 +- .../Web.Extensions/src/wwwroot/headManager.js | 7 ++ .../test/testassets/BasicTestApp/Index.razor | 1 + .../BasicTestApp/ModifyHeadComponent.razor | 49 ++++++++++ .../test/testassets/BasicTestApp/Program.cs | 2 + .../BasicTestApp/wwwroot/index.html | 2 + .../TestServer/Pages/_ServerHost.cshtml | 2 + .../testassets/TestServer/ServerStartup.cs | 1 + 12 files changed, 251 insertions(+), 1 deletion(-) create mode 100644 src/Components/Web.Extensions/src/Head/HeadElementBase.cs create mode 100644 src/Components/Web.Extensions/src/Head/HeadManager.cs create mode 100644 src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs create mode 100644 src/Components/Web.Extensions/src/Head/Title.cs create mode 100644 src/Components/Web.Extensions/src/wwwroot/headManager.js create mode 100644 src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor diff --git a/src/Components/Web.Extensions/src/Head/HeadElementBase.cs b/src/Components/Web.Extensions/src/Head/HeadElementBase.cs new file mode 100644 index 000000000000..cd7cbae6f48f --- /dev/null +++ b/src/Components/Web.Extensions/src/Head/HeadElementBase.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public abstract class HeadElementBase : ComponentBase, IDisposable + { + [Inject] + protected HeadManager HeadManager { get; set; } = default!; + + internal LinkedListNode Node { get; } + + internal abstract object ElementKey { get; } + + protected HeadElementBase() + { + Node = new LinkedListNode(this); + } + + protected override void OnInitialized() + { + if (HeadManager == null) + { + throw new InvalidOperationException($"{GetType()} requires the {typeof(HeadManager)} service."); + } + } + + protected override async Task OnParametersSetAsync() + { + await HeadManager.NotifyChangedAsync(this); + } + + internal abstract ValueTask SaveInitialStateAsync(); + + internal abstract ValueTask ApplyChangesAsync(); + + public void Dispose() + { + HeadManager.NotifyDisposed(this); + } + } +} diff --git a/src/Components/Web.Extensions/src/Head/HeadManager.cs b/src/Components/Web.Extensions/src/Head/HeadManager.cs new file mode 100644 index 000000000000..9d2471cc35c5 --- /dev/null +++ b/src/Components/Web.Extensions/src/Head/HeadManager.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading.Tasks; +using Microsoft.JSInterop; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public class HeadManager + { + private const string JsFunctionsPrefix = "_blazorHeadManager"; + + private readonly IJSRuntime _jsRuntime; + + private readonly Dictionary> stateMap = + new Dictionary>(); + + public HeadManager(IJSRuntime jsRuntime) + { + _jsRuntime = jsRuntime; + } + + internal async ValueTask NotifyChangedAsync(HeadElementBase headElement) + { + if (!stateMap.TryGetValue(headElement.ElementKey, out var states)) + { + await headElement.SaveInitialStateAsync(); + + states = new LinkedList(); + + // TODO: Save initial state, maybe add type for state tracking. + + stateMap.Add(headElement.ElementKey, states); + } + + if (headElement.Node != states.Last) + { + if (headElement.Node.List == states) + { + states.Remove(headElement.Node); + } + + states.AddLast(headElement.Node); + } + + await headElement.ApplyChangesAsync(); + + PrintStateMap(); + } + + internal void NotifyDisposed(HeadElementBase headElement) + { + if (!stateMap.TryGetValue(headElement.ElementKey, out var states)) + { + throw new InvalidOperationException(); // TOOD + } + + Debug.Assert(headElement.Node!.List == states); + + bool needsToApplyChanges = headElement.Node == states.Last; + + states.Remove(headElement.Node); + + if (needsToApplyChanges) + { + if (states.Count > 0) + { + states.Last!.Value.ApplyChangesAsync(); // TODO - async problems? + } + else + { + // TODO: Apply initial state. + } + } + + PrintStateMap(); + } + + internal async ValueTask SetTitleAsync(string title) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + } + + private void PrintStateMap() + { + foreach (var (stateKey, states) in stateMap) + { + Console.WriteLine($"{stateKey}: {string.Join(", ", states)}"); + } + } + } +} diff --git a/src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs new file mode 100644 index 000000000000..23c857ab78a7 --- /dev/null +++ b/src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Components.Web.Extensions; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.Extensions.DependencyInjection +{ + public static class HeadServiceCollectionExtensions + { + public static void AddHeadManager(this IServiceCollection services) + { + services.AddScoped(); + } + } +} diff --git a/src/Components/Web.Extensions/src/Head/Title.cs b/src/Components/Web.Extensions/src/Head/Title.cs new file mode 100644 index 000000000000..aab75197affb --- /dev/null +++ b/src/Components/Web.Extensions/src/Head/Title.cs @@ -0,0 +1,36 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Rendering; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public class Title : HeadElementBase + { + [Parameter] + public string Value { get; set; } = string.Empty; + + [Parameter] + public RenderFragment? ChildContent { get; set; } + + internal override object ElementKey => "title"; + + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + ChildContent?.Invoke(builder); + } + + internal override ValueTask SaveInitialStateAsync() + { + return ValueTask.CompletedTask; + } + + internal override async ValueTask ApplyChangesAsync() + { + await HeadManager.SetTitleAsync(Value); + } + + public override string ToString() + { + return Value; + } + } +} diff --git a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj index 10bf2f923473..dcc5f5348a90 100644 --- a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj +++ b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj @@ -1,14 +1,16 @@ - + $(DefaultNetCoreTargetFramework) A collection of Blazor components for the web. + _content/Microsoft.AspNetCore.Components.Web.Extensions true Microsoft.AspNetCore.Components enable + diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js new file mode 100644 index 000000000000..8628b9da6950 --- /dev/null +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -0,0 +1,7 @@ +const setTitle = (title) => { + document.title = title; +}; + +window._blazorHeadManager = { + setTitle, +}; diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index aa87700d5b8e..f1712d32dd6e 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -57,6 +57,7 @@ + diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor new file mode 100644 index 000000000000..caf635040f9d --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -0,0 +1,49 @@ +@using Microsoft.AspNetCore.Components.Web.Extensions + +

+ Title: + + +</p> + +@for (int i = 0; i < showTitles.Length; i++) +{ + var titleId = i; + + <button @onclick="() => ToggleTitle(titleId)">@(showTitles[titleId] ? "Hide" : "Show") title @titleId</button> + + if (showTitles[titleId]) + { + <Title Value="@($"Title {titleId}")" /> + } +} + +<button @onclick="Toggle">Toggle @(toggled ? "on" : "off")!</button> + +@if (toggled) +{ + <Title Value="@($"Toggle on!")" /> +} +else +{ + <Title Value="@($"Toggle off!")" /> +} + +@code { + private string title = "Basic test app"; + + private bool toggled = false; + + private readonly bool[] showTitles = Enumerable.Repeat(false, 6).ToArray(); + + private void ToggleTitle(int titleId) + { + showTitles[titleId] = !showTitles[titleId]; + StateHasChanged(); + } + + private void Toggle() + { + toggled = !toggled; + } +} diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index 1e640b59dc64..eb6b2c341d85 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -39,6 +39,8 @@ public static async Task Main(string[] args) policy.RequireAssertion(ctx => ctx.User.Identity.Name?.StartsWith("B") ?? false)); }); + builder.Services.AddSingleton<HeadManager>(); + builder.Services.AddDataProtection(); builder.Services.AddTransient<ProtectedLocalStorage>(); diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html index 68a3e8234449..241b91829ca6 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html @@ -42,6 +42,8 @@ </script> <script src="_framework/blazor.webassembly.js"></script> + <script src="_content/Microsoft.AspNetCore.Components.Web.Extensions/headManager.js"></script> + <!-- Used by ExternalContentPackage --> <script src="_content/TestContentPackage/prompt.js"></script> </body> diff --git a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml index cb1529d64e52..6934d1852302 100644 --- a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml @@ -38,6 +38,8 @@ <script src="_framework/blazor.server.js"></script> + <script src="_content/Microsoft.AspNetCore.Components.Web.Extensions/headManager.js"></script> + <!-- Used by ExternalContentPackage --> <script src="_content/TestContentPackage/prompt.js"></script> <script> diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 90d6e862fa91..5ecded92a4e3 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -21,6 +21,7 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddProtectedBrowserStorage(); + services.AddHeadManager(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 5eb0bf37129d2c9a82bcc4144f354e05f9512188 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 8 Jul 2020 21:57:14 -0700 Subject: [PATCH 02/20] Working prototype. --- .../Web.Extensions/src/Head/HeadManager.cs | 92 ------------------- .../{Head => HeadManager}/HeadElementBase.cs | 8 +- .../src/HeadManager/HeadElementChain.cs | 55 +++++++++++ .../src/HeadManager/HeadManager.cs | 73 +++++++++++++++ .../HeadServiceCollectionExtensions.cs | 1 - .../Web.Extensions/src/HeadManager/Meta.cs | 56 +++++++++++ .../src/HeadManager/MetaElement.cs | 15 +++ .../src/{Head => HeadManager}/Title.cs | 11 ++- .../Web.Extensions/src/wwwroot/headManager.js | 47 ++++++++++ .../BasicTestApp/ModifyHeadComponent.razor | 50 +++++----- 10 files changed, 280 insertions(+), 128 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/Head/HeadManager.cs rename src/Components/Web.Extensions/src/{Head => HeadManager}/HeadElementBase.cs (76%) create mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs create mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadManager.cs rename src/Components/Web.Extensions/src/{Head => HeadManager}/HeadServiceCollectionExtensions.cs (86%) create mode 100644 src/Components/Web.Extensions/src/HeadManager/Meta.cs create mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElement.cs rename src/Components/Web.Extensions/src/{Head => HeadManager}/Title.cs (68%) diff --git a/src/Components/Web.Extensions/src/Head/HeadManager.cs b/src/Components/Web.Extensions/src/Head/HeadManager.cs deleted file mode 100644 index 9d2471cc35c5..000000000000 --- a/src/Components/Web.Extensions/src/Head/HeadManager.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Threading.Tasks; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - public class HeadManager - { - private const string JsFunctionsPrefix = "_blazorHeadManager"; - - private readonly IJSRuntime _jsRuntime; - - private readonly Dictionary<object, LinkedList<HeadElementBase>> stateMap = - new Dictionary<object, LinkedList<HeadElementBase>>(); - - public HeadManager(IJSRuntime jsRuntime) - { - _jsRuntime = jsRuntime; - } - - internal async ValueTask NotifyChangedAsync(HeadElementBase headElement) - { - if (!stateMap.TryGetValue(headElement.ElementKey, out var states)) - { - await headElement.SaveInitialStateAsync(); - - states = new LinkedList<HeadElementBase>(); - - // TODO: Save initial state, maybe add type for state tracking. - - stateMap.Add(headElement.ElementKey, states); - } - - if (headElement.Node != states.Last) - { - if (headElement.Node.List == states) - { - states.Remove(headElement.Node); - } - - states.AddLast(headElement.Node); - } - - await headElement.ApplyChangesAsync(); - - PrintStateMap(); - } - - internal void NotifyDisposed(HeadElementBase headElement) - { - if (!stateMap.TryGetValue(headElement.ElementKey, out var states)) - { - throw new InvalidOperationException(); // TOOD - } - - Debug.Assert(headElement.Node!.List == states); - - bool needsToApplyChanges = headElement.Node == states.Last; - - states.Remove(headElement.Node); - - if (needsToApplyChanges) - { - if (states.Count > 0) - { - states.Last!.Value.ApplyChangesAsync(); // TODO - async problems? - } - else - { - // TODO: Apply initial state. - } - } - - PrintStateMap(); - } - - internal async ValueTask SetTitleAsync(string title) - { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); - } - - private void PrintStateMap() - { - foreach (var (stateKey, states) in stateMap) - { - Console.WriteLine($"{stateKey}: {string.Join(", ", states)}"); - } - } - } -} diff --git a/src/Components/Web.Extensions/src/Head/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs similarity index 76% rename from src/Components/Web.Extensions/src/Head/HeadElementBase.cs rename to src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index cd7cbae6f48f..aa798c64b3e6 100644 --- a/src/Components/Web.Extensions/src/Head/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -31,13 +31,15 @@ protected override async Task OnParametersSetAsync() await HeadManager.NotifyChangedAsync(this); } - internal abstract ValueTask SaveInitialStateAsync(); + internal abstract ValueTask<object> GetInitialStateAsync(); - internal abstract ValueTask ApplyChangesAsync(); + internal abstract ValueTask ResetInitialStateAsync(object initialState); + + internal abstract ValueTask ApplyAsync(); public void Dispose() { - HeadManager.NotifyDisposed(this); + HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); // TODO: Async problems here? } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs new file mode 100644 index 000000000000..03fa6c215daa --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal class HeadElementChain + { + private readonly LinkedList<HeadElementBase> _priorityChain = new LinkedList<HeadElementBase>(); + + private readonly object _initialState; + + public HeadElementChain(object initialState) + { + _initialState = initialState; + } + + public async ValueTask ApplyChangeAsync(HeadElementBase newElement) + { + if (newElement.Node != _priorityChain.Last) + { + if (newElement.Node.List == _priorityChain) + { + _priorityChain.Remove(newElement.Node); + } + + _priorityChain.AddLast(newElement.Node); + } + + await newElement.ApplyAsync(); + } + + public async ValueTask<bool> DiscardChangeAsync(HeadElementBase discardedElement) + { + Debug.Assert(discardedElement.Node.List == _priorityChain); + + bool needsToApplyChanges = discardedElement.Node == _priorityChain.Last; + + _priorityChain.Remove(discardedElement.Node); + + if (needsToApplyChanges) + { + if (_priorityChain.Last == null) + { + await discardedElement.ResetInitialStateAsync(_initialState); + return true; + } + + await _priorityChain.Last.Value.ApplyAsync(); + } + + return false; + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs new file mode 100644 index 000000000000..01d3196e11b2 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -0,0 +1,73 @@ +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading.Tasks; +using Microsoft.JSInterop; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public class HeadManager + { + private const string JsFunctionsPrefix = "_blazorHeadManager"; + + private readonly IJSRuntime _jsRuntime; + + private readonly Dictionary<object, HeadElementChain> _elementChains = new Dictionary<object, HeadElementChain>(); + + public HeadManager(IJSRuntime jsRuntime) + { + _jsRuntime = jsRuntime; + } + + internal async ValueTask NotifyChangedAsync(HeadElementBase element) + { + if (!_elementChains.TryGetValue(element.ElementKey, out var chain)) + { + var initialElementState = await element.GetInitialStateAsync(); + + chain = new HeadElementChain(initialElementState); + + _elementChains.Add(element.ElementKey, chain); + } + + await chain.ApplyChangeAsync(element); + } + + internal async ValueTask NotifyDisposedAsync(HeadElementBase element) + { + if (_elementChains.TryGetValue(element.ElementKey, out var chain)) + { + var isChainEmpty = await chain.DiscardChangeAsync(element); + + if (isChainEmpty) + { + _elementChains.Remove(element.ElementKey); + } + } + else + { + // This should never happen, but if it does, we'd like to know. + Debug.Fail("Element key not found in state map."); + } + } + + internal ValueTask<string> GetTitleAsync() + { + return _jsRuntime.InvokeAsync<string>($"{JsFunctionsPrefix}.getTitle"); + } + + internal ValueTask<MetaElement> GetMetaElementByNameAsync(string name) + { + return _jsRuntime.InvokeAsync<MetaElement>($"{JsFunctionsPrefix}.getMetaElementByName", name); + } + + internal async ValueTask SetTitleAsync(object title) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + } + + internal async ValueTask SetMetaElementByNameAsync(string name, object metaElement) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElementByName", name, metaElement); + } + } +} diff --git a/src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs similarity index 86% rename from src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs rename to src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs index 23c857ab78a7..1044d164871c 100644 --- a/src/Components/Web.Extensions/src/Head/HeadServiceCollectionExtensions.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Components.Web.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace Microsoft.Extensions.DependencyInjection { diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs new file mode 100644 index 000000000000..cb5eaf20b846 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -0,0 +1,56 @@ +using System; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public class Meta : HeadElementBase + { + private MetaElement _metaElement = default!; + + internal override object ElementKey => _metaElement; + + [Parameter] + public string? Name { get; set; } + + [Parameter] + public string? Content { get; set; } + + protected override async Task OnParametersSetAsync() + { + if (Name == null) + { + throw new InvalidOperationException($"{GetType()} requires a name to be specified."); + } + + if (_metaElement == null) + { + _metaElement = new MetaElement + { + Name = Name, + Content = Content ?? string.Empty, + }; + } + else if (!string.Equals(_metaElement.Name, Name)) + { + await HeadManager.NotifyDisposedAsync(this); + } + + await HeadManager.NotifyChangedAsync(this); + } + + internal override async ValueTask ApplyAsync() + { + await HeadManager.SetMetaElementByNameAsync(_metaElement.Name, _metaElement); + } + + internal override async ValueTask<object> GetInitialStateAsync() + { + return await HeadManager.GetMetaElementByNameAsync(_metaElement.Name); + } + + internal override ValueTask ResetInitialStateAsync(object initialState) + { + return HeadManager.SetMetaElementByNameAsync(_metaElement.Name, initialState); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs new file mode 100644 index 000000000000..de0f5473f71a --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs @@ -0,0 +1,15 @@ +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal class MetaElement + { + public string Name { get; set; } = string.Empty; + + public string Content { get; set; } = string.Empty; + + public override bool Equals(object? obj) + => obj is MetaElement other && Name.Equals(other.Name) && Content.Equals(other.Content); + + public override int GetHashCode() + => Name.GetHashCode() ^ Content.GetHashCode(); + } +} diff --git a/src/Components/Web.Extensions/src/Head/Title.cs b/src/Components/Web.Extensions/src/HeadManager/Title.cs similarity index 68% rename from src/Components/Web.Extensions/src/Head/Title.cs rename to src/Components/Web.Extensions/src/HeadManager/Title.cs index aab75197affb..6a3e74bfa979 100644 --- a/src/Components/Web.Extensions/src/Head/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Title.cs @@ -18,12 +18,17 @@ protected override void BuildRenderTree(RenderTreeBuilder builder) ChildContent?.Invoke(builder); } - internal override ValueTask SaveInitialStateAsync() + internal override async ValueTask<object> GetInitialStateAsync() { - return ValueTask.CompletedTask; + return await HeadManager.GetTitleAsync(); } - internal override async ValueTask ApplyChangesAsync() + internal override ValueTask ResetInitialStateAsync(object initialState) + { + return HeadManager.SetTitleAsync(initialState); + } + + internal override async ValueTask ApplyAsync() { await HeadManager.SetTitleAsync(Value); } diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index 8628b9da6950..06203b9da276 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -1,7 +1,54 @@ +const getTitle = () => { + return document.title; +}; + const setTitle = (title) => { document.title = title; }; +const getMetaElementByName = (name) => { + const elements = Array.from(document.getElementsByTagName('meta')); + const domMetaElement = elements.find(e => e.name === name); + + if (!domMetaElement) { + return undefined; + } + + return { + name: domMetaElement.name, + content: domMetaElement.content, + }; +}; + +const setMetaElementByName = (name, metaElement) => { + const elements = Array.from(document.getElementsByTagName('meta')); + let domMetaElement = elements.find(e => e.name === name); + + if (!metaElement) { + domMetaElement && domMetaElement.remove(); + return true; + } + + if (!domMetaElement) { + const head = document.getElementsByTagName('head')[0]; + + if (!head) { + return false; + } + + domMetaElement = document.createElement('meta'); + head.appendChild(domMetaElement); + } + + domMetaElement.name = metaElement.name; + domMetaElement.content = metaElement.content; + + return true; +}; + window._blazorHeadManager = { + getTitle, setTitle, + getMetaElementByName, + setMetaElementByName, }; diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index caf635040f9d..73f4c9f35ad7 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -1,49 +1,41 @@ @using Microsoft.AspNetCore.Components.Web.Extensions <p> - Title: - <input @bind-value="title" placeholder="Type a title..." /> - <Title Value="@title" /> -</p> + @for (int i = 0; i < titles.Length; i++) + { + var titleId = i; -@for (int i = 0; i < showTitles.Length; i++) -{ - var titleId = i; + <button @onclick="() => ToggleTitle(titleId)">@(titles[titleId] ? "Disable" : "Enable") title @titleId</button> - <button @onclick="() => ToggleTitle(titleId)">@(showTitles[titleId] ? "Hide" : "Show") title @titleId</button> + if (titles[titleId]) + { + <Title Value="@($"Title {titleId}")" /> + } + } +</p> - if (showTitles[titleId]) +<p> + <button @onclick="ToggleMeta">@(renderMeta ? "Disable" : "Enable") meta</button> + @if (renderMeta) { - <Title Value="@($"Title {titleId}")" /> + <Meta Name="description" Content="This is a meta tag, wheeee!"/> } -} - -<button @onclick="Toggle">Toggle @(toggled ? "on" : "off")!</button> - -@if (toggled) -{ - <Title Value="@($"Toggle on!")" /> -} -else -{ - <Title Value="@($"Toggle off!")" /> -} +</p> @code { - private string title = "Basic test app"; - - private bool toggled = false; + private readonly bool[] titles = Enumerable.Repeat(false, 6).ToArray(); - private readonly bool[] showTitles = Enumerable.Repeat(false, 6).ToArray(); + private bool renderMeta = false; private void ToggleTitle(int titleId) { - showTitles[titleId] = !showTitles[titleId]; + titles[titleId] = !titles[titleId]; StateHasChanged(); } - private void Toggle() + private void ToggleMeta() { - toggled = !toggled; + renderMeta = !renderMeta; + StateHasChanged(); } } From 11666410494f19014c57265bc67eabef16ee0a0c Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Thu, 9 Jul 2020 12:09:29 -0700 Subject: [PATCH 03/20] Started on improved meta tag support. --- .../src/HeadManager/HeadElementBase.cs | 10 ++-- .../src/HeadManager/HeadManager.cs | 12 ++-- .../Web.Extensions/src/HeadManager/Meta.cs | 60 ++++++++++++++----- .../src/HeadManager/MetaElement.cs | 15 ----- .../src/HeadManager/MetaElementKey.cs | 21 +++++++ .../src/HeadManager/MetaElementKeyName.cs | 9 +++ .../src/HeadManager/MetaElementState.cs | 9 +++ .../Web.Extensions/src/HeadManager/Title.cs | 18 +----- .../Web.Extensions/src/wwwroot/headManager.js | 27 +++++---- .../BasicTestApp/ModifyHeadComponent.razor | 19 +++++- 10 files changed, 130 insertions(+), 70 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElement.cs create mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs create mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs create mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index aa798c64b3e6..858fd0112d1c 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -31,15 +31,15 @@ protected override async Task OnParametersSetAsync() await HeadManager.NotifyChangedAsync(this); } + public void Dispose() + { + HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); // TODO: Async problems here? + } + internal abstract ValueTask<object> GetInitialStateAsync(); internal abstract ValueTask ResetInitialStateAsync(object initialState); internal abstract ValueTask ApplyAsync(); - - public void Dispose() - { - HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); // TODO: Async problems here? - } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index 01d3196e11b2..c09f45f0f252 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -55,19 +55,19 @@ internal ValueTask<string> GetTitleAsync() return _jsRuntime.InvokeAsync<string>($"{JsFunctionsPrefix}.getTitle"); } - internal ValueTask<MetaElement> GetMetaElementByNameAsync(string name) + internal async ValueTask SetTitleAsync(object title) { - return _jsRuntime.InvokeAsync<MetaElement>($"{JsFunctionsPrefix}.getMetaElementByName", name); + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); } - internal async ValueTask SetTitleAsync(object title) + internal ValueTask<MetaElementState> GetMetaElementAsync(MetaElementKey key) { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + return _jsRuntime.InvokeAsync<MetaElementState>($"{JsFunctionsPrefix}.getMetaElement", key); } - internal async ValueTask SetMetaElementByNameAsync(string name, object metaElement) + internal async ValueTask SetMetaElementAsync(MetaElementKey key, object metaElement) { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElementByName", name, metaElement); + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement); } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index cb5eaf20b846..220295669537 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -1,56 +1,84 @@ using System; +using System.Linq; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Components.Web.Extensions { public class Meta : HeadElementBase { - private MetaElement _metaElement = default!; + private MetaElementState _state = default!; - internal override object ElementKey => _metaElement; + internal override object ElementKey => _state.Key; [Parameter] public string? Name { get; set; } + [Parameter] + public string? HttpEquiv { get; set; } + + [Parameter] + public string? Charset { get; set; } + [Parameter] public string? Content { get; set; } protected override async Task OnParametersSetAsync() { - if (Name == null) - { - throw new InvalidOperationException($"{GetType()} requires a name to be specified."); - } + var key = GetMetaElementKey(); - if (_metaElement == null) + if (_state == null) { - _metaElement = new MetaElement - { - Name = Name, - Content = Content ?? string.Empty, - }; + _state = new MetaElementState(); } - else if (!string.Equals(_metaElement.Name, Name)) + else if (!_state.Key.Equals(key)) { await HeadManager.NotifyDisposedAsync(this); } + _state.Key = key; + _state.Content = Content; + await HeadManager.NotifyChangedAsync(this); } internal override async ValueTask ApplyAsync() { - await HeadManager.SetMetaElementByNameAsync(_metaElement.Name, _metaElement); + await HeadManager.SetMetaElementAsync(_state.Key, _state); } internal override async ValueTask<object> GetInitialStateAsync() { - return await HeadManager.GetMetaElementByNameAsync(_metaElement.Name); + return await HeadManager.GetMetaElementAsync(_state.Key); } internal override ValueTask ResetInitialStateAsync(object initialState) { - return HeadManager.SetMetaElementByNameAsync(_metaElement.Name, initialState); + return HeadManager.SetMetaElementAsync(_state.Key, initialState); + } + + // TODO: There can only be one charset, doesn't matter what value is. + private MetaElementKey GetMetaElementKey() + { + try + { + var (id, name) = new (string? id, MetaElementKeyName type)[] + { + (Name, MetaElementKeyName.Name), + (HttpEquiv, MetaElementKeyName.HttpEquiv), + (Charset, MetaElementKeyName.Charset) + } + .Where(t => t.id != null) + .Single(); + + return new MetaElementKey(name, id!); + } + catch (InvalidOperationException ex) + { + throw new InvalidOperationException( + $"{GetType()} must contain exactly one of {nameof(Name)}, {nameof(HttpEquiv)}, " + + $"or {nameof(Charset)}.", + ex); + } } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs deleted file mode 100644 index de0f5473f71a..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElement.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal class MetaElement - { - public string Name { get; set; } = string.Empty; - - public string Content { get; set; } = string.Empty; - - public override bool Equals(object? obj) - => obj is MetaElement other && Name.Equals(other.Name) && Content.Equals(other.Content); - - public override int GetHashCode() - => Name.GetHashCode() ^ Content.GetHashCode(); - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs new file mode 100644 index 000000000000..fe79c312f06c --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs @@ -0,0 +1,21 @@ +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal readonly struct MetaElementKey + { + public MetaElementKeyName Name { get; } + + public string Id { get; } + + public MetaElementKey(MetaElementKeyName name, string id) + { + Name = name; + Id = id; + } + + public override bool Equals(object? obj) + => obj is MetaElementKey other && Name.Equals(other.Name) && Id.Equals(other.Id); + + public override int GetHashCode() + => Name.GetHashCode() ^ Id.GetHashCode(); + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs new file mode 100644 index 000000000000..61d8ac79a28e --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs @@ -0,0 +1,9 @@ +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal enum MetaElementKeyName + { + Name = 0, + HttpEquiv = 1, + Charset = 2, + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs new file mode 100644 index 000000000000..542e5c73f0d9 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs @@ -0,0 +1,9 @@ +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal class MetaElementState + { + public MetaElementKey Key { get; set; } + + public string? Content { get; set; } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/Title.cs b/src/Components/Web.Extensions/src/HeadManager/Title.cs index 6a3e74bfa979..1805f88663dd 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Title.cs @@ -1,22 +1,13 @@ using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; namespace Microsoft.AspNetCore.Components.Web.Extensions { public class Title : HeadElementBase { - [Parameter] - public string Value { get; set; } = string.Empty; - - [Parameter] - public RenderFragment? ChildContent { get; set; } - internal override object ElementKey => "title"; - protected override void BuildRenderTree(RenderTreeBuilder builder) - { - ChildContent?.Invoke(builder); - } + [Parameter] + public string Value { get; set; } = string.Empty; internal override async ValueTask<object> GetInitialStateAsync() { @@ -32,10 +23,5 @@ internal override async ValueTask ApplyAsync() { await HeadManager.SetTitleAsync(Value); } - - public override string ToString() - { - return Value; - } } } diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index 06203b9da276..557662289b57 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -6,23 +6,25 @@ const setTitle = (title) => { document.title = title; }; -const getMetaElementByName = (name) => { +const getMetaElement = (key) => { + const keyName = ['name', 'http-equiv', 'charset'][key.name]; const elements = Array.from(document.getElementsByTagName('meta')); - const domMetaElement = elements.find(e => e.name === name); + let domMetaElement = elements.find(e => e.getAttribute(keyName) === key.id); if (!domMetaElement) { return undefined; } return { - name: domMetaElement.name, - content: domMetaElement.content, + name: domMetaElement.getAttribute(keyName), + content: domMetaElement.getAttribute('content'), }; }; -const setMetaElementByName = (name, metaElement) => { +const setMetaElement = (key, metaElement) => { + const keyName = ['name', 'http-equiv', 'charset'][key.name]; const elements = Array.from(document.getElementsByTagName('meta')); - let domMetaElement = elements.find(e => e.name === name); + let domMetaElement = elements.find(e => e.getAttribute(keyName) === key.id); if (!metaElement) { domMetaElement && domMetaElement.remove(); @@ -40,8 +42,13 @@ const setMetaElementByName = (name, metaElement) => { head.appendChild(domMetaElement); } - domMetaElement.name = metaElement.name; - domMetaElement.content = metaElement.content; + domMetaElement.setAttribute(keyName, key.id); + + if (metaElement.content) { + domMetaElement.setAttribute('content', metaElement.content); + } else { + domMetaElement.removeAttribute('content'); + } return true; }; @@ -49,6 +56,6 @@ const setMetaElementByName = (name, metaElement) => { window._blazorHeadManager = { getTitle, setTitle, - getMetaElementByName, - setMetaElementByName, + getMetaElement, + setMetaElement, }; diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index 73f4c9f35ad7..8dedda5b3137 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -15,17 +15,26 @@ </p> <p> - <button @onclick="ToggleMeta">@(renderMeta ? "Disable" : "Enable") meta</button> + <button @onclick="ToggleMetaDescription">@(renderMeta ? "Disable" : "Enable") meta</button> @if (renderMeta) { <Meta Name="description" Content="This is a meta tag, wheeee!"/> } </p> +<p> + <button @onclick="ToggleMetaCharset">@(renderCharset ? "Disable" : "Enable") charset</button> + @if (renderCharset) + { + <Meta Charset="us-ascii" /> + } +</p> + @code { private readonly bool[] titles = Enumerable.Repeat(false, 6).ToArray(); private bool renderMeta = false; + private bool renderCharset = false; private void ToggleTitle(int titleId) { @@ -33,9 +42,15 @@ StateHasChanged(); } - private void ToggleMeta() + private void ToggleMetaDescription() { renderMeta = !renderMeta; StateHasChanged(); } + + private void ToggleMetaCharset() + { + renderCharset = !renderCharset; + StateHasChanged(); + } } From 4de103a1683753446f11e668c6adff31f87eaafb Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Thu, 9 Jul 2020 17:19:28 -0700 Subject: [PATCH 04/20] Improved meta support and better thread safety. --- .../src/HeadManager/HeadElementBase.cs | 20 ++++++- .../src/HeadManager/HeadElementChain.cs | 9 ++++ .../src/HeadManager/HeadManager.cs | 50 +++++++++++++++++ .../HeadServiceCollectionExtensions.cs | 10 ++++ .../Web.Extensions/src/HeadManager/Meta.cs | 53 +++++++++---------- .../src/HeadManager/MetaElementKey.cs | 18 ++++--- .../src/HeadManager/MetaElementKeyName.cs | 9 ---- .../src/HeadManager/MetaElementState.cs | 5 +- .../Web.Extensions/src/HeadManager/Title.cs | 9 ++++ .../Web.Extensions/src/wwwroot/headManager.js | 17 +++--- .../BasicTestApp/ModifyHeadComponent.razor | 27 +++++++--- 11 files changed, 166 insertions(+), 61 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index 858fd0112d1c..d39459a013fc 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -1,23 +1,39 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// Serves as a base class for components influencing the HTML head tag. + /// </summary> public abstract class HeadElementBase : ComponentBase, IDisposable { + /// <summary> + /// The <see cref="Extensions.HeadManager"/> enforcing changes to the head tag. + /// </summary> [Inject] protected HeadManager HeadManager { get; set; } = default!; internal LinkedListNode<HeadElementBase> Node { get; } + /// <summary> + /// Gets an object that uniquely identifies the HTML element being modified. + /// </summary> internal abstract object ElementKey { get; } + /// <summary> + /// Instantiates a new <see cref="HeadElementBase"/> instance. + /// </summary> protected HeadElementBase() { Node = new LinkedListNode<HeadElementBase>(this); } + /// <inheritdoc /> protected override void OnInitialized() { if (HeadManager == null) @@ -26,14 +42,16 @@ protected override void OnInitialized() } } + /// <inheritdoc /> protected override async Task OnParametersSetAsync() { await HeadManager.NotifyChangedAsync(this); } + /// <inheritdoc /> public void Dispose() { - HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); // TODO: Async problems here? + HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); } internal abstract ValueTask<object> GetInitialStateAsync(); diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs index 03fa6c215daa..0029a21976a1 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs @@ -1,9 +1,16 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// Tracks <see cref="HeadElementBase"/> instances whose effects override each other, organizes them + /// into a priority queue, and applies changes from the correct <see cref="HeadElementBase"/>. + /// </summary> internal class HeadElementChain { private readonly LinkedList<HeadElementBase> _priorityChain = new LinkedList<HeadElementBase>(); @@ -17,6 +24,7 @@ public HeadElementChain(object initialState) public async ValueTask ApplyChangeAsync(HeadElementBase newElement) { + // Move the element to the end of the priority chain. if (newElement.Node != _priorityChain.Last) { if (newElement.Node.List == _priorityChain) @@ -30,6 +38,7 @@ public async ValueTask ApplyChangeAsync(HeadElementBase newElement) await newElement.ApplyAsync(); } + // Returns true if the chain is now empty. public async ValueTask<bool> DiscardChangeAsync(HeadElementBase discardedElement) { Debug.Assert(discardedElement.Node.List == _priorityChain); diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index c09f45f0f252..d026178e2ec9 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -1,10 +1,18 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; +using System.Threading; using System.Threading.Tasks; using Microsoft.JSInterop; namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// A service that manages manipulation of the HTML head element. + /// </summary> public class HeadManager { private const string JsFunctionsPrefix = "_blazorHeadManager"; @@ -13,6 +21,14 @@ public class HeadManager private readonly Dictionary<object, HeadElementChain> _elementChains = new Dictionary<object, HeadElementChain>(); + private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1); + + private readonly ConcurrentQueue<TaskCompletionSource> _tcsQueue = new ConcurrentQueue<TaskCompletionSource>(); + + /// <summary> + /// Creates a new <see cref="HeadManager"/> instance. + /// </summary> + /// <param name="jsRuntime">The <see cref="IJSRuntime" /> to use.</param> public HeadManager(IJSRuntime jsRuntime) { _jsRuntime = jsRuntime; @@ -20,8 +36,12 @@ public HeadManager(IJSRuntime jsRuntime) internal async ValueTask NotifyChangedAsync(HeadElementBase element) { + // Wait for previous changes to be applied before proceeding. + await AcquireLock(); + if (!_elementChains.TryGetValue(element.ElementKey, out var chain)) { + // No changes to the target element are being tracked - save the initial element state. var initialElementState = await element.GetInitialStateAsync(); chain = new HeadElementChain(initialElementState); @@ -30,10 +50,15 @@ internal async ValueTask NotifyChangedAsync(HeadElementBase element) } await chain.ApplyChangeAsync(element); + + ReleaseLock(); } internal async ValueTask NotifyDisposedAsync(HeadElementBase element) { + // Wait for previous changes to be applied before proceeding. + await AcquireLock(); + if (_elementChains.TryGetValue(element.ElementKey, out var chain)) { var isChainEmpty = await chain.DiscardChangeAsync(element); @@ -48,6 +73,8 @@ internal async ValueTask NotifyDisposedAsync(HeadElementBase element) // This should never happen, but if it does, we'd like to know. Debug.Fail("Element key not found in state map."); } + + ReleaseLock(); } internal ValueTask<string> GetTitleAsync() @@ -69,5 +96,28 @@ internal async ValueTask SetMetaElementAsync(MetaElementKey key, object metaElem { await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement); } + + private Task AcquireLock() + { + // Add a new TCS for the current acquisition. + var tcs = new TaskCompletionSource(); + _tcsQueue.Enqueue(tcs); + + _semaphore.WaitAsync().ContinueWith(t => + { + if (_tcsQueue.TryDequeue(out var completedTcs)) + { + // Allow the next task in the queue to proceed. + completedTcs.SetResult(); + } + }); + + return tcs.Task; + } + + private void ReleaseLock() + { + _semaphore.Release(); + } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs index 1044d164871c..c1e20b8126fd 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs @@ -1,9 +1,19 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using Microsoft.AspNetCore.Components.Web.Extensions; namespace Microsoft.Extensions.DependencyInjection { + /// <summary> + /// Extension methods for registering head management services. + /// </summary> public static class HeadServiceCollectionExtensions { + /// <summary> + /// Adds services for head management to the specified <see cref="IServiceCollection"/>. + /// </summary> + /// <param name="services">The <see cref="IServiceCollection"/>.</param> public static void AddHeadManager(this IServiceCollection services) { services.AddScoped<HeadManager>(); diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index 220295669537..0aea08c61408 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -1,30 +1,42 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System; -using System.Linq; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// A component that adds or updates meta tags contained in the HTML head element. + /// </summary> public class Meta : HeadElementBase { private MetaElementState _state = default!; internal override object ElementKey => _state.Key; + /// <summary> + /// Gets or sets the "name" attribute of the HTML meta tag. + /// </summary> [Parameter] public string? Name { get; set; } + /// <summary> + /// Gets or sets the "http-equiv" attribute of the HTML meta tag. + /// </summary> [Parameter] public string? HttpEquiv { get; set; } - [Parameter] - public string? Charset { get; set; } - + /// <summary> + /// Gets or sets the "content" attribute of the HTML meta tag. + /// </summary> [Parameter] public string? Content { get; set; } + /// <inheritdoc /> protected override async Task OnParametersSetAsync() { - var key = GetMetaElementKey(); + var key = GetKey(); if (_state == null) { @@ -32,6 +44,7 @@ protected override async Task OnParametersSetAsync() } else if (!_state.Key.Equals(key)) { + // If the key changes, this component now represents a new meta tag. await HeadManager.NotifyDisposedAsync(this); } @@ -56,29 +69,13 @@ internal override ValueTask ResetInitialStateAsync(object initialState) return HeadManager.SetMetaElementAsync(_state.Key, initialState); } - // TODO: There can only be one charset, doesn't matter what value is. - private MetaElementKey GetMetaElementKey() - { - try + private MetaElementKey GetKey() + => (Name, HttpEquiv) switch { - var (id, name) = new (string? id, MetaElementKeyName type)[] - { - (Name, MetaElementKeyName.Name), - (HttpEquiv, MetaElementKeyName.HttpEquiv), - (Charset, MetaElementKeyName.Charset) - } - .Where(t => t.id != null) - .Single(); - - return new MetaElementKey(name, id!); - } - catch (InvalidOperationException ex) - { - throw new InvalidOperationException( - $"{GetType()} must contain exactly one of {nameof(Name)}, {nameof(HttpEquiv)}, " + - $"or {nameof(Charset)}.", - ex); - } - } + (string name, null) => new MetaElementKey("name", name), + (null, string httpEquiv) => new MetaElementKey("http-equiv", httpEquiv), + _ => throw new InvalidOperationException( + $"{GetType()} parameters must contain exactly one of {nameof(Name)} or {nameof(HttpEquiv)}.") + }; } } diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs index fe79c312f06c..6e2a735b7675 100644 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs @@ -1,21 +1,27 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// Identifies meta elements by a shared attribute. + /// </summary> internal readonly struct MetaElementKey { - public MetaElementKeyName Name { get; } + public string Name { get; } - public string Id { get; } + public string Value { get; } - public MetaElementKey(MetaElementKeyName name, string id) + public MetaElementKey(string name, string value) { Name = name; - Id = id; + Value = value; } public override bool Equals(object? obj) - => obj is MetaElementKey other && Name.Equals(other.Name) && Id.Equals(other.Id); + => obj is MetaElementKey other && string.Equals(Name, other.Name) && string.Equals(Value, other.Value); public override int GetHashCode() - => Name.GetHashCode() ^ Id.GetHashCode(); + => Name.GetHashCode() ^ Value.GetHashCode(); } } diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs deleted file mode 100644 index 61d8ac79a28e..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElementKeyName.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal enum MetaElementKeyName - { - Name = 0, - HttpEquiv = 1, - Charset = 2, - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs index 542e5c73f0d9..a7d735816952 100644 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs +++ b/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs @@ -1,8 +1,11 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + namespace Microsoft.AspNetCore.Components.Web.Extensions { internal class MetaElementState { - public MetaElementKey Key { get; set; } + public MetaElementKey Key { get; set; } = default!; public string? Content { get; set; } } diff --git a/src/Components/Web.Extensions/src/HeadManager/Title.cs b/src/Components/Web.Extensions/src/HeadManager/Title.cs index 1805f88663dd..b0bfdf9f59f4 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Title.cs @@ -1,11 +1,20 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System.Threading.Tasks; namespace Microsoft.AspNetCore.Components.Web.Extensions { + /// <summary> + /// A component that changes the title of the document. + /// </summary> public class Title : HeadElementBase { internal override object ElementKey => "title"; + /// <summary> + /// Gets or sets the value to use as the document's title. + /// </summary> [Parameter] public string Value { get; set; } = string.Empty; diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index 557662289b57..e355703ef190 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -6,25 +6,26 @@ const setTitle = (title) => { document.title = title; }; -const getMetaElement = (key) => { - const keyName = ['name', 'http-equiv', 'charset'][key.name]; +const getDomMetaElement = (key) => { const elements = Array.from(document.getElementsByTagName('meta')); - let domMetaElement = elements.find(e => e.getAttribute(keyName) === key.id); + return elements.find(e => e.getAttribute(key.name) === key.value); +} + +const getMetaElement = (key) => { + const domMetaElement = getDomMetaElement(key); if (!domMetaElement) { return undefined; } return { - name: domMetaElement.getAttribute(keyName), + key, content: domMetaElement.getAttribute('content'), }; }; const setMetaElement = (key, metaElement) => { - const keyName = ['name', 'http-equiv', 'charset'][key.name]; - const elements = Array.from(document.getElementsByTagName('meta')); - let domMetaElement = elements.find(e => e.getAttribute(keyName) === key.id); + let domMetaElement = getDomMetaElement(key); if (!metaElement) { domMetaElement && domMetaElement.remove(); @@ -42,7 +43,7 @@ const setMetaElement = (key, metaElement) => { head.appendChild(domMetaElement); } - domMetaElement.setAttribute(keyName, key.id); + domMetaElement.setAttribute(key.name, key.value); if (metaElement.content) { domMetaElement.setAttribute('content', metaElement.content); diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index 8dedda5b3137..efc6caaac931 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -15,18 +15,29 @@ </p> <p> - <button @onclick="ToggleMetaDescription">@(renderMeta ? "Disable" : "Enable") meta</button> + <button @onclick="ToggleMetaDescription">@(renderMeta ? "Disable" : "Enable") meta description</button> @if (renderMeta) { - <Meta Name="description" Content="This is a meta tag, wheeee!"/> + <Meta Name="description" Content="Modifying the head from a Blazor component." /> } </p> <p> - <button @onclick="ToggleMetaCharset">@(renderCharset ? "Disable" : "Enable") charset</button> - @if (renderCharset) + <button @onclick="ToggleMetaNested">@(renderNested ? "Disable" : "Enable") meta http-equiv nested</button> + @if (renderNested) { - <Meta Charset="us-ascii" /> + <div> + <Meta HttpEquiv="test" Content="Layer 1" /> + <div> + <Meta HttpEquiv="test" Content="Layer 2" /> + <div> + <Meta HttpEquiv="test" Content="Layer 3" /> + <div> + <Meta HttpEquiv="test" Content="Layer 4" /> + </div> + </div> + </div> + </div> } </p> @@ -34,7 +45,7 @@ private readonly bool[] titles = Enumerable.Repeat(false, 6).ToArray(); private bool renderMeta = false; - private bool renderCharset = false; + private bool renderNested = false; private void ToggleTitle(int titleId) { @@ -48,9 +59,9 @@ StateHasChanged(); } - private void ToggleMetaCharset() + private void ToggleMetaNested() { - renderCharset = !renderCharset; + renderNested = !renderNested; StateHasChanged(); } } From 75183d9fcaa62042d04696f0d1c11a1045aa89b8 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Fri, 10 Jul 2020 11:40:29 -0700 Subject: [PATCH 05/20] Improved synchronization. --- AspNetCore.sln | 93 +++++++++++++++++++ .../src/HeadManager/HeadElementBase.cs | 6 +- .../src/HeadManager/HeadManager.cs | 35 +++---- .../Web.Extensions/src/HeadManager/Meta.cs | 6 +- 4 files changed, 114 insertions(+), 26 deletions(-) diff --git a/AspNetCore.sln b/AspNetCore.sln index ca9dfcf28181..6afe9b4ef763 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1427,6 +1427,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Web.Extensions.Tests", "src\Components\Web.Extensions\test\Microsoft.AspNetCore.Components.Web.Extensions.Tests.csproj", "{157605CB-5170-4C1A-980F-4BAE42DB60DE}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{2531F00A-54EB-4074-9C0B-9AF9FB3679DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BasicTestApp", "src\Components\test\testassets\BasicTestApp\BasicTestApp.csproj", "{85D67E40-4B11-48ED-8C43-34590A1FB9ED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LazyTestContentPackage", "src\Components\test\testassets\LazyTestContentPackage\LazyTestContentPackage.csproj", "{C0EF53A5-5A94-4849-86B0-2297EA08D649}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentsApp.App", "src\Components\test\testassets\ComponentsApp.App\ComponentsApp.App.csproj", "{4FDD820F-8397-41B7-956E-F257DD044BD8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ComponentsApp.Server", "src\Components\test\testassets\ComponentsApp.Server\ComponentsApp.Server.csproj", "{CA7C7A53-446F-453A-A57B-78BB1443B8A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestContentPackage", "src\Components\test\testassets\TestContentPackage\TestContentPackage.csproj", "{B32C5882-2313-40D0-A003-2FF33724CFE6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Components.TestServer", "src\Components\test\testassets\TestServer\Components.TestServer.csproj", "{26F88A06-319C-43F3-9FD9-8BC2D29F8C00}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -6729,6 +6743,78 @@ Global {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x64.Build.0 = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.ActiveCfg = Release|Any CPU {157605CB-5170-4C1A-980F-4BAE42DB60DE}.Release|x86.Build.0 = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x64.ActiveCfg = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x64.Build.0 = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x86.ActiveCfg = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Debug|x86.Build.0 = Debug|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|Any CPU.Build.0 = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x64.ActiveCfg = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x64.Build.0 = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x86.ActiveCfg = Release|Any CPU + {85D67E40-4B11-48ED-8C43-34590A1FB9ED}.Release|x86.Build.0 = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x64.ActiveCfg = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x64.Build.0 = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x86.ActiveCfg = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Debug|x86.Build.0 = Debug|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|Any CPU.Build.0 = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x64.ActiveCfg = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x64.Build.0 = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x86.ActiveCfg = Release|Any CPU + {C0EF53A5-5A94-4849-86B0-2297EA08D649}.Release|x86.Build.0 = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x64.ActiveCfg = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x64.Build.0 = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x86.ActiveCfg = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Debug|x86.Build.0 = Debug|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|Any CPU.Build.0 = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x64.ActiveCfg = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x64.Build.0 = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x86.ActiveCfg = Release|Any CPU + {4FDD820F-8397-41B7-956E-F257DD044BD8}.Release|x86.Build.0 = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x64.ActiveCfg = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x64.Build.0 = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x86.ActiveCfg = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Debug|x86.Build.0 = Debug|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|Any CPU.Build.0 = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x64.ActiveCfg = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x64.Build.0 = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x86.ActiveCfg = Release|Any CPU + {CA7C7A53-446F-453A-A57B-78BB1443B8A8}.Release|x86.Build.0 = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x64.ActiveCfg = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x64.Build.0 = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x86.ActiveCfg = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Debug|x86.Build.0 = Debug|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|Any CPU.Build.0 = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x64.ActiveCfg = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x64.Build.0 = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x86.ActiveCfg = Release|Any CPU + {B32C5882-2313-40D0-A003-2FF33724CFE6}.Release|x86.Build.0 = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x64.ActiveCfg = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x64.Build.0 = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x86.ActiveCfg = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Debug|x86.Build.0 = Debug|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|Any CPU.Build.0 = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x64.ActiveCfg = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x64.Build.0 = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x86.ActiveCfg = Release|Any CPU + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -7444,6 +7530,13 @@ Global {F71FE795-9923-461B-9809-BB1821A276D0} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF} {8294A74F-7DAA-4B69-BC56-7634D93C9693} = {F71FE795-9923-461B-9809-BB1821A276D0} {157605CB-5170-4C1A-980F-4BAE42DB60DE} = {F71FE795-9923-461B-9809-BB1821A276D0} + {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} = {0508E463-0269-40C9-B5C2-3B600FB2A28B} + {85D67E40-4B11-48ED-8C43-34590A1FB9ED} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} + {C0EF53A5-5A94-4849-86B0-2297EA08D649} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} + {4FDD820F-8397-41B7-956E-F257DD044BD8} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} + {CA7C7A53-446F-453A-A57B-78BB1443B8A8} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} + {B32C5882-2313-40D0-A003-2FF33724CFE6} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} + {26F88A06-319C-43F3-9FD9-8BC2D29F8C00} = {2531F00A-54EB-4074-9C0B-9AF9FB3679DC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index d39459a013fc..12f7e819f205 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -43,15 +43,15 @@ protected override void OnInitialized() } /// <inheritdoc /> - protected override async Task OnParametersSetAsync() + protected override void OnParametersSet() { - await HeadManager.NotifyChangedAsync(this); + HeadManager.NotifyChanged(this); } /// <inheritdoc /> public void Dispose() { - HeadManager.NotifyDisposedAsync(this).ConfigureAwait(false); + HeadManager.NotifyDisposed(this); } internal abstract ValueTask<object> GetInitialStateAsync(); diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index d026178e2ec9..9aadd4b9ad9d 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; @@ -34,11 +35,14 @@ public HeadManager(IJSRuntime jsRuntime) _jsRuntime = jsRuntime; } - internal async ValueTask NotifyChangedAsync(HeadElementBase element) - { - // Wait for previous changes to be applied before proceeding. - await AcquireLock(); + internal void NotifyChanged(HeadElementBase element) + => EnqueueTask(() => HandleChangedAsync(element)); + + internal void NotifyDisposed(HeadElementBase element) + => EnqueueTask(() => HandleDisposedAsync(element)); + private async Task HandleChangedAsync(HeadElementBase element) + { if (!_elementChains.TryGetValue(element.ElementKey, out var chain)) { // No changes to the target element are being tracked - save the initial element state. @@ -50,15 +54,10 @@ internal async ValueTask NotifyChangedAsync(HeadElementBase element) } await chain.ApplyChangeAsync(element); - - ReleaseLock(); } - internal async ValueTask NotifyDisposedAsync(HeadElementBase element) + private async Task HandleDisposedAsync(HeadElementBase element) { - // Wait for previous changes to be applied before proceeding. - await AcquireLock(); - if (_elementChains.TryGetValue(element.ElementKey, out var chain)) { var isChainEmpty = await chain.DiscardChangeAsync(element); @@ -73,8 +72,6 @@ internal async ValueTask NotifyDisposedAsync(HeadElementBase element) // This should never happen, but if it does, we'd like to know. Debug.Fail("Element key not found in state map."); } - - ReleaseLock(); } internal ValueTask<string> GetTitleAsync() @@ -97,10 +94,15 @@ internal async ValueTask SetMetaElementAsync(MetaElementKey key, object metaElem await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement); } - private Task AcquireLock() + private void EnqueueTask(Func<Task> task) { // Add a new TCS for the current acquisition. var tcs = new TaskCompletionSource(); + + // Define the pipeline to be run when the semaphore unblocks. + tcs.Task.ContinueWith(t => task.Invoke().ContinueWith(t => _semaphore.Release())); + + // Reserve the task's position in the queue. _tcsQueue.Enqueue(tcs); _semaphore.WaitAsync().ContinueWith(t => @@ -111,13 +113,6 @@ private Task AcquireLock() completedTcs.SetResult(); } }); - - return tcs.Task; - } - - private void ReleaseLock() - { - _semaphore.Release(); } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index 0aea08c61408..7e5b99012f02 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -34,7 +34,7 @@ public class Meta : HeadElementBase public string? Content { get; set; } /// <inheritdoc /> - protected override async Task OnParametersSetAsync() + protected override void OnParametersSet() { var key = GetKey(); @@ -45,13 +45,13 @@ protected override async Task OnParametersSetAsync() else if (!_state.Key.Equals(key)) { // If the key changes, this component now represents a new meta tag. - await HeadManager.NotifyDisposedAsync(this); + HeadManager.NotifyDisposed(this); } _state.Key = key; _state.Content = Content; - await HeadManager.NotifyChangedAsync(this); + HeadManager.NotifyChanged(this); } internal override async ValueTask ApplyAsync() From 2e74f3e73965e65989f031d827b014624ad8f5c5 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Fri, 10 Jul 2020 11:56:36 -0700 Subject: [PATCH 06/20] Added support for meta "property" attribute. --- .../Web.Extensions/src/HeadManager/HeadManager.cs | 4 ++-- .../Web.Extensions/src/HeadManager/Meta.cs | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index 9aadd4b9ad9d..1a025b520c6b 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -96,10 +96,10 @@ internal async ValueTask SetMetaElementAsync(MetaElementKey key, object metaElem private void EnqueueTask(Func<Task> task) { - // Add a new TCS for the current acquisition. + // Create a new TCS for the enqueued task. var tcs = new TaskCompletionSource(); - // Define the pipeline to be run when the semaphore unblocks. + // Define the pipeline to be run when the task gets dequeued. tcs.Task.ContinueWith(t => task.Invoke().ContinueWith(t => _semaphore.Release())); // Reserve the task's position in the queue. diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index 7e5b99012f02..f0415240c60c 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -27,6 +27,12 @@ public class Meta : HeadElementBase [Parameter] public string? HttpEquiv { get; set; } + /// <summary> + /// Gets or sets the "property" attribute of the HTML meta tag. + /// </summary> + [Parameter] + public string? Property { get; set; } + /// <summary> /// Gets or sets the "content" attribute of the HTML meta tag. /// </summary> @@ -70,10 +76,11 @@ internal override ValueTask ResetInitialStateAsync(object initialState) } private MetaElementKey GetKey() - => (Name, HttpEquiv) switch + => (Name, HttpEquiv, Property) switch { - (string name, null) => new MetaElementKey("name", name), - (null, string httpEquiv) => new MetaElementKey("http-equiv", httpEquiv), + (string name, null, null) => new MetaElementKey("name", name), + (null, string httpEquiv, null) => new MetaElementKey("http-equiv", httpEquiv), + (null, null, string property) => new MetaElementKey("property", property), _ => throw new InvalidOperationException( $"{GetType()} parameters must contain exactly one of {nameof(Name)} or {nameof(HttpEquiv)}.") }; From 0b976016e4059f7f373a82e8760eacc122c4510b Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Fri, 10 Jul 2020 11:58:47 -0700 Subject: [PATCH 07/20] Updated exception message. --- src/Components/Web.Extensions/src/HeadManager/Meta.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index f0415240c60c..08cf56fe53f7 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -81,8 +81,10 @@ private MetaElementKey GetKey() (string name, null, null) => new MetaElementKey("name", name), (null, string httpEquiv, null) => new MetaElementKey("http-equiv", httpEquiv), (null, null, string property) => new MetaElementKey("property", property), + _ => throw new InvalidOperationException( - $"{GetType()} parameters must contain exactly one of {nameof(Name)} or {nameof(HttpEquiv)}.") + $"{GetType()} parameters must contain exactly one of " + + $"{nameof(Name)}, {nameof(HttpEquiv)} or {nameof(Property)}.") }; } } From 687b3f8d1f47f4ef7803d3dbb8c505f231a6bccc Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Fri, 10 Jul 2020 15:44:11 -0700 Subject: [PATCH 08/20] Added link element support. --- .../src/HeadManager/HeadElementBase.cs | 4 +- .../src/HeadManager/HeadElementChain.cs | 4 +- .../src/HeadManager/HeadManager.cs | 18 ++++-- .../Web.Extensions/src/HeadManager/Link.cs | 35 ++++++++++ .../Web.Extensions/src/HeadManager/Meta.cs | 6 +- .../Web.Extensions/src/HeadManager/Title.cs | 4 +- .../Web.Extensions/src/wwwroot/headManager.js | 64 +++++++++++++++---- .../BasicTestApp/ModifyHeadComponent.razor | 53 ++++++++++++--- 8 files changed, 154 insertions(+), 34 deletions(-) create mode 100644 src/Components/Web.Extensions/src/HeadManager/Link.cs diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index 12f7e819f205..9cbf988c4b1d 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -54,9 +54,9 @@ public void Dispose() HeadManager.NotifyDisposed(this); } - internal abstract ValueTask<object> GetInitialStateAsync(); + internal abstract ValueTask<object?> GetInitialStateAsync(); - internal abstract ValueTask ResetInitialStateAsync(object initialState); + internal abstract ValueTask ResetInitialStateAsync(object? initialState); internal abstract ValueTask ApplyAsync(); } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs index 0029a21976a1..a015f7f6cdd2 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs @@ -15,9 +15,9 @@ internal class HeadElementChain { private readonly LinkedList<HeadElementBase> _priorityChain = new LinkedList<HeadElementBase>(); - private readonly object _initialState; + private readonly object? _initialState; - public HeadElementChain(object initialState) + public HeadElementChain(object? initialState) { _initialState = initialState; } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index 1a025b520c6b..8a86471f8fae 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -79,9 +79,9 @@ internal ValueTask<string> GetTitleAsync() return _jsRuntime.InvokeAsync<string>($"{JsFunctionsPrefix}.getTitle"); } - internal async ValueTask SetTitleAsync(object title) + internal ValueTask SetTitleAsync(object? title) { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title!); } internal ValueTask<MetaElementState> GetMetaElementAsync(MetaElementKey key) @@ -89,9 +89,19 @@ internal ValueTask<MetaElementState> GetMetaElementAsync(MetaElementKey key) return _jsRuntime.InvokeAsync<MetaElementState>($"{JsFunctionsPrefix}.getMetaElement", key); } - internal async ValueTask SetMetaElementAsync(MetaElementKey key, object metaElement) + internal ValueTask SetMetaElementAsync(MetaElementKey key, object? metaElement) { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement); + return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement!); + } + + internal ValueTask SetLinkElementAsync(int id, object? attributes) + { + return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setLinkElement", id, attributes!); + } + + internal ValueTask DeleteLinkElementAsync(int id) + { + return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.deleteLinkElement", id); } private void EnqueueTask(Func<Task> task) diff --git a/src/Components/Web.Extensions/src/HeadManager/Link.cs b/src/Components/Web.Extensions/src/HeadManager/Link.cs new file mode 100644 index 000000000000..2b6a859ad77a --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManager/Link.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + /// <summary> + /// A component that adds a link element to the HTML head. + /// </summary> + public class Link : HeadElementBase + { + // Link components should never override each other, so they have unique keys. + internal override object ElementKey { get; } = new object(); + + /// <summary> + /// Gets or sets a collection of additional attributes that will be applied to the link element. + /// </summary> + [Parameter(CaptureUnmatchedValues = true)] + public IReadOnlyDictionary<string, object>? Attributes { get; set; } + + internal override ValueTask ApplyAsync() + { + return HeadManager.SetLinkElementAsync(ElementKey.GetHashCode(), Attributes); + } + + internal override ValueTask<object?> GetInitialStateAsync() + { + return ValueTask.FromResult<object?>(null); + } + + internal override ValueTask ResetInitialStateAsync(object? initialState) + { + return HeadManager.DeleteLinkElementAsync(ElementKey.GetHashCode()); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index 08cf56fe53f7..8cc53e2ed0d6 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> - /// A component that adds or updates meta tags contained in the HTML head element. + /// A component that adds or updates meta elements in the HTML head. /// </summary> public class Meta : HeadElementBase { @@ -65,12 +65,12 @@ internal override async ValueTask ApplyAsync() await HeadManager.SetMetaElementAsync(_state.Key, _state); } - internal override async ValueTask<object> GetInitialStateAsync() + internal override async ValueTask<object?> GetInitialStateAsync() { return await HeadManager.GetMetaElementAsync(_state.Key); } - internal override ValueTask ResetInitialStateAsync(object initialState) + internal override ValueTask ResetInitialStateAsync(object? initialState) { return HeadManager.SetMetaElementAsync(_state.Key, initialState); } diff --git a/src/Components/Web.Extensions/src/HeadManager/Title.cs b/src/Components/Web.Extensions/src/HeadManager/Title.cs index b0bfdf9f59f4..aa2ed0fd6e59 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Title.cs @@ -18,12 +18,12 @@ public class Title : HeadElementBase [Parameter] public string Value { get; set; } = string.Empty; - internal override async ValueTask<object> GetInitialStateAsync() + internal override async ValueTask<object?> GetInitialStateAsync() { return await HeadManager.GetTitleAsync(); } - internal override ValueTask ResetInitialStateAsync(object initialState) + internal override ValueTask ResetInitialStateAsync(object? initialState) { return HeadManager.SetTitleAsync(initialState); } diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index e355703ef190..e0b99614ba91 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -1,3 +1,26 @@ +// Local helpers + +const getDomMetaElement = (key) => { + const elements = Array.from(document.getElementsByTagName('meta')); + return elements.find(e => e.getAttribute(key.name) === key.value); +}; + +const getDomLinkElement = (id) => { + const elements = Array.from(document.getElementsByTagName('link')); + return elements.find(e => e._blazorLinkId === id); +}; + +const createHeadElement = (tagName) => { + const head = document.getElementsByTagName('head')[0]; + const element = document.createElement(tagName); + + head.appendChild(element); + + return element; +}; + +// Exported functions + const getTitle = () => { return document.title; }; @@ -6,11 +29,6 @@ const setTitle = (title) => { document.title = title; }; -const getDomMetaElement = (key) => { - const elements = Array.from(document.getElementsByTagName('meta')); - return elements.find(e => e.getAttribute(key.name) === key.value); -} - const getMetaElement = (key) => { const domMetaElement = getDomMetaElement(key); @@ -33,14 +51,7 @@ const setMetaElement = (key, metaElement) => { } if (!domMetaElement) { - const head = document.getElementsByTagName('head')[0]; - - if (!head) { - return false; - } - - domMetaElement = document.createElement('meta'); - head.appendChild(domMetaElement); + domMetaElement = createHeadElement('meta'); } domMetaElement.setAttribute(key.name, key.value); @@ -54,9 +65,36 @@ const setMetaElement = (key, metaElement) => { return true; }; +const setLinkElement = (id, attributes) => { + let domLinkElement = getDomLinkElement(id); + + if (domLinkElement) { + // Remove existing attributes + while (domLinkElement.attributes.length > 0) { + domLinkElement.removeAttribute(domLinkElement.attributes[0].name); + } + } else { + domLinkElement = createHeadElement('link'); + domLinkElement._blazorLinkId = id; + } + + for (const attributeName in attributes) { + if (attributes.hasOwnProperty(attributeName)) { + domLinkElement.setAttribute(attributeName, attributes[attributeName]); + } + } +}; + +const deleteLinkElement = (id) => { + const domLinkElement = getDomLinkElement(id); + domLinkElement && domLinkElement.remove(); +}; + window._blazorHeadManager = { getTitle, setTitle, getMetaElement, setMetaElement, + setLinkElement, + deleteLinkElement, }; diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index efc6caaac931..b01e96b989e3 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -1,6 +1,7 @@ @using Microsoft.AspNetCore.Components.Web.Extensions <p> + Multiple title elements:<br /> @for (int i = 0; i < titles.Length; i++) { var titleId = i; @@ -15,16 +16,18 @@ </p> <p> - <button @onclick="ToggleMetaDescription">@(renderMeta ? "Disable" : "Enable") meta description</button> - @if (renderMeta) + Add/remove meta element:<br /> + <button @onclick="ToggleMetaDescription">@(renderSingleMeta ? "Disable" : "Enable") meta description</button> + @if (renderSingleMeta) { <Meta Name="description" Content="Modifying the head from a Blazor component." /> } </p> <p> - <button @onclick="ToggleMetaNested">@(renderNested ? "Disable" : "Enable") meta http-equiv nested</button> - @if (renderNested) + Nested meta elements:<br /> + <button @onclick="ToggleMetaNested">@(renderNestedMeta ? "Disable" : "Enable") meta http-equiv nested</button> + @if (renderNestedMeta) { <div> <Meta HttpEquiv="test" Content="Layer 1" /> @@ -41,11 +44,39 @@ } </p> +<p> + Nested link elements:<br /> + <button @onclick="ToggleLinkNested">@(renderNestedLink ? "Disable" : "Enable") link nested</button> + @if (renderNestedLink) + { + <div> + <Link attr1="some attribute" attr2="Layer 1" /> + <div> + <Link attr1="some attribute" attr2="Layer 2" /> + <div> + <Link attr1="some other attribute" attr2="Layer 3" extra-attr="one more" /> + </div> + </div> + </div> + } +</p> + +<p> + Link elements w/ bindings:<br /> + <input @bind="@linkAttribute1" placeholder="Attribute 1" /><br /> + <input @bind="@linkAttribute2" placeholder="Attribute 2"/><br /> + <Link attr1="@linkAttribute1" attr2="@linkAttribute2" /> +</p> + @code { private readonly bool[] titles = Enumerable.Repeat(false, 6).ToArray(); - private bool renderMeta = false; - private bool renderNested = false; + private bool renderSingleMeta = false; + private bool renderNestedMeta = false; + private bool renderNestedLink = false; + + private string linkAttribute1 = "First attribute"; + private string linkAttribute2 = "Second attribute"; private void ToggleTitle(int titleId) { @@ -55,13 +86,19 @@ private void ToggleMetaDescription() { - renderMeta = !renderMeta; + renderSingleMeta = !renderSingleMeta; StateHasChanged(); } private void ToggleMetaNested() { - renderNested = !renderNested; + renderNestedMeta = !renderNestedMeta; + StateHasChanged(); + } + + private void ToggleLinkNested() + { + renderNestedLink = !renderNestedLink; StateHasChanged(); } } From 34f97331c7f98fa7782e349fa5300c3d4c3f1ac3 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Fri, 10 Jul 2020 17:58:59 -0700 Subject: [PATCH 09/20] Started on functional tests. --- .../src/HeadManager/HeadElementBase.cs | 2 +- .../src/HeadManager/HeadElementChain.cs | 4 +- .../Web.Extensions/src/HeadManager/Link.cs | 5 +- .../Web.Extensions/src/HeadManager/Meta.cs | 6 +- .../Web.Extensions/src/HeadManager/Title.cs | 6 +- .../src/Properties/AssemblyInfo.cs | 3 + .../Web.Extensions/test/HeadManagerTest.cs | 150 ++++++++++++++++++ 7 files changed, 166 insertions(+), 10 deletions(-) create mode 100644 src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs create mode 100644 src/Components/Web.Extensions/test/HeadManagerTest.cs diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs index 9cbf988c4b1d..85317d74483f 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs @@ -56,7 +56,7 @@ public void Dispose() internal abstract ValueTask<object?> GetInitialStateAsync(); - internal abstract ValueTask ResetInitialStateAsync(object? initialState); + internal abstract ValueTask ResetStateAsync(object? initialState); internal abstract ValueTask ApplyAsync(); } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs index a015f7f6cdd2..319bdabf3dfe 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> /// Tracks <see cref="HeadElementBase"/> instances whose effects override each other, organizes them - /// into a priority queue, and applies changes from the correct <see cref="HeadElementBase"/>. + /// into a priority list, and applies changes from the correct <see cref="HeadElementBase"/>. /// </summary> internal class HeadElementChain { @@ -51,7 +51,7 @@ public async ValueTask<bool> DiscardChangeAsync(HeadElementBase discardedElement { if (_priorityChain.Last == null) { - await discardedElement.ResetInitialStateAsync(_initialState); + await discardedElement.ResetStateAsync(_initialState); return true; } diff --git a/src/Components/Web.Extensions/src/HeadManager/Link.cs b/src/Components/Web.Extensions/src/HeadManager/Link.cs index 2b6a859ad77a..7bb14610e950 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Link.cs @@ -1,3 +1,6 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System.Collections.Generic; using System.Threading.Tasks; @@ -27,7 +30,7 @@ internal override ValueTask ApplyAsync() return ValueTask.FromResult<object?>(null); } - internal override ValueTask ResetInitialStateAsync(object? initialState) + internal override ValueTask ResetStateAsync(object? initialState) { return HeadManager.DeleteLinkElementAsync(ElementKey.GetHashCode()); } diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs index 8cc53e2ed0d6..a429e3fe330e 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Meta.cs @@ -60,9 +60,9 @@ protected override void OnParametersSet() HeadManager.NotifyChanged(this); } - internal override async ValueTask ApplyAsync() + internal override ValueTask ApplyAsync() { - await HeadManager.SetMetaElementAsync(_state.Key, _state); + return HeadManager.SetMetaElementAsync(_state.Key, _state); } internal override async ValueTask<object?> GetInitialStateAsync() @@ -70,7 +70,7 @@ internal override async ValueTask ApplyAsync() return await HeadManager.GetMetaElementAsync(_state.Key); } - internal override ValueTask ResetInitialStateAsync(object? initialState) + internal override ValueTask ResetStateAsync(object? initialState) { return HeadManager.SetMetaElementAsync(_state.Key, initialState); } diff --git a/src/Components/Web.Extensions/src/HeadManager/Title.cs b/src/Components/Web.Extensions/src/HeadManager/Title.cs index aa2ed0fd6e59..bfbe5ffa222f 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManager/Title.cs @@ -23,14 +23,14 @@ public class Title : HeadElementBase return await HeadManager.GetTitleAsync(); } - internal override ValueTask ResetInitialStateAsync(object? initialState) + internal override ValueTask ResetStateAsync(object? initialState) { return HeadManager.SetTitleAsync(initialState); } - internal override async ValueTask ApplyAsync() + internal override ValueTask ApplyAsync() { - await HeadManager.SetTitleAsync(Value); + return HeadManager.SetTitleAsync(Value); } } } diff --git a/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs b/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..2e06371bc654 --- /dev/null +++ b/src/Components/Web.Extensions/src/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Components.Web.Extensions.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] diff --git a/src/Components/Web.Extensions/test/HeadManagerTest.cs b/src/Components/Web.Extensions/test/HeadManagerTest.cs new file mode 100644 index 000000000000..478ccb41eaed --- /dev/null +++ b/src/Components/Web.Extensions/test/HeadManagerTest.cs @@ -0,0 +1,150 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Concurrent; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.JSInterop; +using Moq; +using Xunit; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + public class HeadManagerTest + { + [Fact] + public async void HeadElementChain_StateRevertsWhenLastChangeDiscarded() + { + var initialState = "initial state"; + var headElementChain = new HeadElementChain(initialState); + + var element1 = new TestHeadElement(); + var element2 = new TestHeadElement(); + + // Add elements to chain + await headElementChain.ApplyChangeAsync(element1); + await headElementChain.ApplyChangeAsync(element2); + + // Verify initial number of times applied + Assert.Equal(1, element1.NumTimesApplied); + Assert.Equal(1, element2.NumTimesApplied); + + // Discard most recent element + await headElementChain.DiscardChangeAsync(element2); + + // Verify that only initial element was applied again + Assert.Equal(2, element1.NumTimesApplied); + Assert.Equal(1, element2.NumTimesApplied); + + // Discard the last element + await headElementChain.DiscardChangeAsync(element1); + + // Verify that the initial state was preserved + Assert.Equal(initialState, element1.StateAfterReset); + } + + [Fact] + public async void HeadElementChain_StateDoesNotUpdateWhenNonLastChangeDiscarded() + { + var headElementChain = new HeadElementChain(null); + + var element1 = new TestHeadElement(); + var element2 = new TestHeadElement(); + + // Add elements to chain + await headElementChain.ApplyChangeAsync(element1); + await headElementChain.ApplyChangeAsync(element2); + + // Discard first element + await headElementChain.DiscardChangeAsync(element1); + + // Verify that each element was only applied once + Assert.Equal(1, element1.NumTimesApplied); + Assert.Equal(1, element2.NumTimesApplied); + } + + [Fact] + public async void HeadManager_ChangesAppliedInRequestedOrder() + { + var headManager = new HeadManager(Mock.Of<IJSRuntime>()); + var numElements = 5; + var maxDelay = 1000; + + var completedOrder = new ConcurrentQueue<int>(); + var blockingTaskSource = new TaskCompletionSource(); + + var elements = Enumerable.Range(0, numElements) + .Select(i => new TestHeadElement + { + Key = i, + OnApplied = async () => + { + // This delay would encourage changes to be applied in reverse order in a non-blocking handler + var delay = maxDelay - i * (maxDelay / numElements); + + await Task.Delay(delay); + + completedOrder.Enqueue(i); + } + }) + .ToList(); + + // Request changes in order of increasing element key + foreach (var element in elements) + { + headManager.NotifyChanged(element); + } + + // Add one more change that, when handled, unblocks this test + headManager.NotifyChanged(new TestHeadElement + { + OnApplied = () => + { + blockingTaskSource.SetResult(); + return Task.CompletedTask; + } + }); + + // Wait for the head manager to finish applying all changes + await blockingTaskSource.Task; + + // Verify that all changes have been applied + Assert.Equal(numElements, completedOrder.Count); + + // Verify that all changes were applied in the correct order + Assert.All(elements, e => Assert.True(completedOrder.TryDequeue(out var key) && key.Equals(e.Key))); + } + + class TestHeadElement : HeadElementBase + { + internal override object ElementKey => Key; + + public object Key { get; set; } = new object(); + + public Func<Task> OnApplied { get; set; } = () => Task.CompletedTask; + + public int NumTimesApplied { get; private set; } = 0; + public object StateAfterReset { get; private set; } = null; + + internal override async ValueTask ApplyAsync() + { + NumTimesApplied++; + + await OnApplied(); + } + + internal override ValueTask<object> GetInitialStateAsync() + { + return ValueTask.FromResult<object>(null); + } + + internal override ValueTask ResetStateAsync(object initialState) + { + StateAfterReset = initialState; + + return ValueTask.CompletedTask; + } + } + } +} From 0ad5577210e937e162d1246e91f1862f3f6613eb Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Sat, 11 Jul 2020 14:24:07 -0700 Subject: [PATCH 10/20] Added more functional tests. --- .../Web.Extensions/test/HeadManagerTest.cs | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/Components/Web.Extensions/test/HeadManagerTest.cs b/src/Components/Web.Extensions/test/HeadManagerTest.cs index 478ccb41eaed..56de96dcd3da 100644 --- a/src/Components/Web.Extensions/test/HeadManagerTest.cs +++ b/src/Components/Web.Extensions/test/HeadManagerTest.cs @@ -5,6 +5,8 @@ using System.Collections.Concurrent; using System.Linq; using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.AspNetCore.Components.Test.Helpers; using Microsoft.JSInterop; using Moq; using Xunit; @@ -116,6 +118,65 @@ public async void HeadManager_ChangesAppliedInRequestedOrder() Assert.All(elements, e => Assert.True(completedOrder.TryDequeue(out var key) && key.Equals(e.Key))); } + [Theory] + [InlineData(null, null, null)] + [InlineData("name", "httpEquiv", null)] + [InlineData("name", null, "property")] + [InlineData(null, "httpEquiv", "property")] + [InlineData("name", "httpEquiv", "property")] + public void Meta_ThrowsWhenGivenInvalidParameters(string name, string httpEquiv, string property) + { + var serviceProvider = new TestServiceProvider(); + serviceProvider.AddService(new HeadManager(Mock.Of<IJSRuntime>())); + + var testRenderer = new TestRenderer(serviceProvider); + var rootComponent = new TestHostComponent(BuildMetaComponent(name, httpEquiv, property)); + var componentId = testRenderer.AssignRootComponentId(rootComponent); + + var ex = Assert.Throws<InvalidOperationException>(() => testRenderer.RenderRootComponent(componentId)); + Assert.Contains("parameters must contain exactly one of", ex.Message); + } + + [Theory] + [InlineData("name", null, null)] + [InlineData(null, "httpEquiv", null)] + [InlineData(null, null, "property")] + public void Meta_DoesNotThrowWhenGivenValidParameters(string name, string httpEquiv, string property) + { + var serviceProvider = new TestServiceProvider(); + serviceProvider.AddService(new HeadManager(Mock.Of<IJSRuntime>())); + + var testRenderer = new TestRenderer(serviceProvider); + var rootComponent = new TestHostComponent(BuildMetaComponent(name, httpEquiv, property)); + var componentId = testRenderer.AssignRootComponentId(rootComponent); + + testRenderer.RenderRootComponent(componentId); + } + + private Action<RenderTreeBuilder> BuildMetaComponent(string name, string httpEquiv, string property) + => (builder) => + { + builder.OpenComponent<Meta>(0); + builder.AddAttribute(1, nameof(Meta.Name), name); + builder.AddAttribute(2, nameof(Meta.HttpEquiv), httpEquiv); + builder.AddAttribute(3, nameof(Meta.Property), property); + builder.AddAttribute(4, nameof(Meta.Content), "test content"); + builder.CloseComponent(); + }; + + class TestHostComponent : AutoRenderComponent + { + private readonly Action<RenderTreeBuilder> _buildRenderTree; + + public TestHostComponent(Action<RenderTreeBuilder> buildRenderTree) + { + _buildRenderTree = buildRenderTree; + } + + protected override void BuildRenderTree(RenderTreeBuilder builder) + => _buildRenderTree(builder); + } + class TestHeadElement : HeadElementBase { internal override object ElementKey => Key; From 51ca920f91ea194d522e83efe1dafecb10a77ff9 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Mon, 13 Jul 2020 10:44:11 -0700 Subject: [PATCH 11/20] Added E2E tests. --- .../src/HeadManager/HeadManager.cs | 2 +- .../test/E2ETest/Tests/HeadComponentsTest.cs | 139 ++++++++++++++++++ .../BasicTestApp/ModifyHeadComponent.razor | 105 ++++++++----- 3 files changed, 207 insertions(+), 39 deletions(-) create mode 100644 src/Components/test/E2ETest/Tests/HeadComponentsTest.cs diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs index 8a86471f8fae..9d1fc176438f 100644 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs @@ -70,7 +70,7 @@ private async Task HandleDisposedAsync(HeadElementBase element) else { // This should never happen, but if it does, we'd like to know. - Debug.Fail("Element key not found in state map."); + Debug.Fail("The element key does not exist in any element chain."); } } diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs new file mode 100644 index 000000000000..ea937ced2d89 --- /dev/null +++ b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs @@ -0,0 +1,139 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using System.Linq; +using BasicTestApp; +using Microsoft.AspNetCore.Components.E2ETest; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; +using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; +using Microsoft.AspNetCore.E2ETesting; +using OpenQA.Selenium; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.AspNetCore.Components.E2ETests.Tests +{ + public class HeadComponentsTest : ServerTestBase<ToggleExecutionModeServerFixture<Program>> + { + public HeadComponentsTest( + BrowserFixture browserFixture, + ToggleExecutionModeServerFixture<Program> serverFixture, + ITestOutputHelper output) + : base(browserFixture, serverFixture, output) + { + } + + protected override void InitializeAsyncCore() + { + Navigate(ServerPathBase, noReload: _serverFixture.ExecutionMode == ExecutionMode.Client); + Browser.MountTestComponent<ModifyHeadComponent>(); + } + + [Fact] + public void Title_AddsAndDiscardsChangesInReverseOrder() + { + var titleCount = 3; + var titleButtonsById = Enumerable.Range(0, titleCount) + .Select(i => (i, Browser.FindElement(By.Id($"button-title-{i}")))) + .ToList(); + + Assert.All(titleButtonsById, buttonById => + { + var (id, button) = buttonById; + button.Click(); + + Browser.Equal($"Title {id}", () => Browser.Title); + }); + } + + [Fact] + public void Meta_AddsAndDiscardsChangesInReverseOrder() + { + var metaCount = 3; + var metaButtonsById = Enumerable.Range(0, metaCount) + .Select(i => (i, Browser.FindElement(By.Id($"button-meta-{i}")))) + .ToList(); + + Assert.All(metaButtonsById, buttonById => + { + var (id, button) = buttonById; + button.Click(); + + var metaElement = Browser.FindElements(By.TagName("meta")) + .Where(e => e.GetAttribute("name").Equals("multiple-metas")) + .Single(); + + Browser.Equal($"Meta {id}", () => metaElement.GetAttribute("content")); + }); + } + + [Fact] + public void Title_DeepestComponentHasPriority() + { + var nestedTitleButton = Browser.FindElement(By.Id("button-title-nested")); + + Browser.Equal("Basic test app", () => Browser.Title); + + nestedTitleButton.Click(); + + Browser.Equal("Layer 4", () => Browser.Title); + } + + [Fact] + public void Meta_DeepestComponentHasPriority() + { + var nestedMetaButton = Browser.FindElement(By.Id("button-meta-nested")); + + Browser.Empty(FindNestedMetas); + + nestedMetaButton.Click(); + + var nestedMetaElement = FindNestedMetas().Single(); + + Browser.Equal("Layer 4", () => nestedMetaElement.GetAttribute("content")); + + IEnumerable<IWebElement> FindNestedMetas() + => Browser.FindElements(By.TagName("meta")) + .Where(e => e.GetAttribute("http-equiv")?.Equals("nested-meta") ?? false); + } + + [Fact] + public void Link_NestedComponentsDoNotOverride() + { + var nestedLinkButton = Browser.FindElement(By.Id("button-link-nested")); + + Browser.Empty(FindNestedLinks); + + nestedLinkButton.Click(); + + Browser.Equal(3, () => FindNestedLinks().Count()); + + IEnumerable<IWebElement> FindNestedLinks() + => Browser.FindElements(By.Id("nested-link")); + } + + [Fact] + public void Link_UpdatesSameElementWhenComponentPropertyChanged() + { + var linkAttributeInput1 = Browser.FindElement(By.Id("link-attr-input-1")); + var linkAttributeInput2 = Browser.FindElement(By.Id("link-attr-input-2")); + var linkElement = Browser.FindElement(By.Id("link-with-bindings")); + + Browser.Equal("First attribute", () => linkElement.GetAttribute("attr1")); + Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); + + linkAttributeInput1.Clear(); + linkAttributeInput1.SendKeys("hello\n"); + + Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); + Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); + + linkAttributeInput2.Clear(); + linkAttributeInput2.SendKeys("world\n"); + + Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); + Browser.Equal("world", () => linkElement.GetAttribute("attr2")); + } + } +} diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index b01e96b989e3..a25284e95888 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -2,11 +2,14 @@ <p> Multiple title elements:<br /> + @for (int i = 0; i < titles.Length; i++) { var titleId = i; - <button @onclick="() => ToggleTitle(titleId)">@(titles[titleId] ? "Disable" : "Enable") title @titleId</button> + <button id="button-title-@i" @onclick="() => Toggle(ref titles[titleId])"> + @GetToggleString(titles[titleId]) title @titleId + </button> if (titles[titleId]) { @@ -16,27 +19,63 @@ </p> <p> - Add/remove meta element:<br /> - <button @onclick="ToggleMetaDescription">@(renderSingleMeta ? "Disable" : "Enable") meta description</button> - @if (renderSingleMeta) + Multiple meta elements:<br /> + + @for (int i = 0; i < metas.Length; i++) + { + var metaId = i; + + <button id="button-meta-@i" @onclick="() => Toggle(ref metas[metaId])"> + @GetToggleString(metas[metaId]) meta @metaId</button> + + if (metas[metaId]) + { + <Meta Name="multiple-metas" Content="@($"Meta {metaId}")" /> + } + } +</p> + +<p> + Nested title elements:<br /> + + <button id="button-title-nested" @onclick="() => Toggle(ref renderNestedTitle)"> + @GetToggleString(renderNestedTitle) title nested + </button> + + @if (renderNestedTitle) { - <Meta Name="description" Content="Modifying the head from a Blazor component." /> + <div> + <Title Value="Layer 1" /> + <div> + <Title Value="Layer 2" /> + <div> + <Title Value="Layer 3" /> + <div> + <Title Value="Layer 4" /> + </div> + </div> + </div> + </div> } </p> <p> Nested meta elements:<br /> - <button @onclick="ToggleMetaNested">@(renderNestedMeta ? "Disable" : "Enable") meta http-equiv nested</button> + + <button id="button-meta-nested" @onclick="() => Toggle(ref renderNestedMeta)"> + @GetToggleString(renderNestedMeta) meta http-equiv nested + </button> + @if (renderNestedMeta) { <div> - <Meta HttpEquiv="test" Content="Layer 1" /> + <Meta HttpEquiv="nested-meta" Content="Layer 1" /> <div> - <Meta HttpEquiv="test" Content="Layer 2" /> + <Meta HttpEquiv="nested-meta" Content="Layer 2" /> <div> - <Meta HttpEquiv="test" Content="Layer 3" /> + <Meta HttpEquiv="nested-meta" Content="Layer 3" /> <div> - <Meta HttpEquiv="test" Content="Layer 4" /> + <Meta HttpEquiv="nested-meta" Content="Layer 4" /> </div> </div> </div> @@ -46,15 +85,19 @@ <p> Nested link elements:<br /> - <button @onclick="ToggleLinkNested">@(renderNestedLink ? "Disable" : "Enable") link nested</button> + + <button id="button-link-nested" @onclick="() => Toggle(ref renderNestedLink)"> + @GetToggleString(renderNestedLink) link nested + </button> + @if (renderNestedLink) { <div> - <Link attr1="some attribute" attr2="Layer 1" /> + <Link id="nested-link" attr1="some attribute" attr2="Layer 1" /> <div> - <Link attr1="some attribute" attr2="Layer 2" /> + <Link id="nested-link" attr1="some attribute" attr2="Layer 2" /> <div> - <Link attr1="some other attribute" attr2="Layer 3" extra-attr="one more" /> + <Link id="nested-link" attr1="some other attribute" attr2="Layer 3" extra-attr="one more" /> </div> </div> </div> @@ -63,42 +106,28 @@ <p> Link elements w/ bindings:<br /> - <input @bind="@linkAttribute1" placeholder="Attribute 1" /><br /> - <input @bind="@linkAttribute2" placeholder="Attribute 2"/><br /> - <Link attr1="@linkAttribute1" attr2="@linkAttribute2" /> + <input id="link-attr-input-1" @bind="@linkAttribute1" placeholder="Attribute 1" /><br /> + <input id="link-attr-input-2" @bind="@linkAttribute2" placeholder="Attribute 2" /><br /> + <Link id="link-with-bindings" attr1="@linkAttribute1" attr2="@linkAttribute2" /> </p> @code { - private readonly bool[] titles = Enumerable.Repeat(false, 6).ToArray(); + private readonly bool[] titles = Enumerable.Repeat(false, 3).ToArray(); + private readonly bool[] metas = Enumerable.Repeat(false, 3).ToArray(); - private bool renderSingleMeta = false; + private bool renderNestedTitle = false; private bool renderNestedMeta = false; private bool renderNestedLink = false; private string linkAttribute1 = "First attribute"; private string linkAttribute2 = "Second attribute"; - private void ToggleTitle(int titleId) - { - titles[titleId] = !titles[titleId]; - StateHasChanged(); - } - - private void ToggleMetaDescription() + private void Toggle(ref bool b) { - renderSingleMeta = !renderSingleMeta; + b = !b; StateHasChanged(); } - private void ToggleMetaNested() - { - renderNestedMeta = !renderNestedMeta; - StateHasChanged(); - } - - private void ToggleLinkNested() - { - renderNestedLink = !renderNestedLink; - StateHasChanged(); - } + private string GetToggleString(bool b) + => b ? "Disable" : "Enable"; } From 9577da8749c913fb1d7f4c88a6631f4c7372881a Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Mon, 13 Jul 2020 18:50:31 -0700 Subject: [PATCH 12/20] Simplified implementation. --- .../HeadManagement/HeadManagementInterop.cs | 13 ++ .../{HeadManager => HeadManagement}/Link.cs | 23 +- .../Web.Extensions/src/HeadManagement/Meta.cs | 39 ++++ .../{HeadManager => HeadManagement}/Title.cs | 20 +- .../src/HeadManager/HeadElementBase.cs | 63 ------ .../src/HeadManager/HeadElementChain.cs | 64 ------ .../src/HeadManager/HeadManager.cs | 128 ----------- .../HeadServiceCollectionExtensions.cs | 22 -- .../Web.Extensions/src/HeadManager/Meta.cs | 90 -------- .../src/HeadManager/MetaElementKey.cs | 27 --- .../src/HeadManager/MetaElementState.cs | 12 - .../Web.Extensions/src/wwwroot/headManager.js | 99 +++----- .../Web.Extensions/test/HeadManagerTest.cs | 211 ------------------ .../test/E2ETest/Tests/HeadComponentsTest.cs | 83 ++++--- .../BasicTestApp/ModifyHeadComponent.razor | 92 ++++---- .../test/testassets/BasicTestApp/Program.cs | 2 - .../testassets/TestServer/ServerStartup.cs | 1 - 17 files changed, 182 insertions(+), 807 deletions(-) create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs rename src/Components/Web.Extensions/src/{HeadManager => HeadManagement}/Link.cs (53%) create mode 100644 src/Components/Web.Extensions/src/HeadManagement/Meta.cs rename src/Components/Web.Extensions/src/{HeadManager => HeadManagement}/Title.cs (53%) delete mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadManager.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/Meta.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs delete mode 100644 src/Components/Web.Extensions/test/HeadManagerTest.cs diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs new file mode 100644 index 000000000000..e4a972ee2b1d --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs @@ -0,0 +1,13 @@ +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal static class HeadManagementInterop + { + private const string Prefix = "_blazorHeadManager."; + + public const string SetTitle = Prefix + "setTitle"; + + public const string SetTag = Prefix + "setTag"; + + public const string RemoveTag = Prefix + "removeTag"; + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs similarity index 53% rename from src/Components/Web.Extensions/src/HeadManager/Link.cs rename to src/Components/Web.Extensions/src/HeadManagement/Link.cs index 7bb14610e950..65fe4ef62fdc 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Link.cs @@ -1,18 +1,22 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; using System.Threading.Tasks; +using Microsoft.JSInterop; namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> /// A component that adds a link element to the HTML head. /// </summary> - public class Link : HeadElementBase + public class Link : ComponentBase, IDisposable { - // Link components should never override each other, so they have unique keys. - internal override object ElementKey { get; } = new object(); + private readonly string _linkTagId = Guid.NewGuid().ToString("N"); + + [Inject] + private IJSRuntime JSRuntime { get; set; } = default!; /// <summary> /// Gets or sets a collection of additional attributes that will be applied to the link element. @@ -20,19 +24,14 @@ public class Link : HeadElementBase [Parameter(CaptureUnmatchedValues = true)] public IReadOnlyDictionary<string, object>? Attributes { get; set; } - internal override ValueTask ApplyAsync() - { - return HeadManager.SetLinkElementAsync(ElementKey.GetHashCode(), Attributes); - } - - internal override ValueTask<object?> GetInitialStateAsync() + protected override async Task OnParametersSetAsync() { - return ValueTask.FromResult<object?>(null); + await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTag, "link", _linkTagId, Attributes!); } - internal override ValueTask ResetStateAsync(object? initialState) + public void Dispose() { - return HeadManager.DeleteLinkElementAsync(ElementKey.GetHashCode()); + Task.Run(() => JSRuntime.InvokeVoidAsync(HeadManagementInterop.RemoveTag, "link", _linkTagId)); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs new file mode 100644 index 000000000000..7d232e106d6a --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs @@ -0,0 +1,39 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.JSInterop; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + /// <summary> + /// A component that adds a meta element in the HTML head. + /// </summary> + public class Meta : ComponentBase, IDisposable + { + private readonly string _metaTagId = Guid.NewGuid().ToString("N"); + + [Inject] + private IJSRuntime JSRuntime { get; set; } = default!; + + /// <summary> + /// Gets or sets a collection of additional attributes that will be applied to the link element. + /// </summary> + [Parameter(CaptureUnmatchedValues = true)] + public IReadOnlyDictionary<string, object>? Attributes { get; set; } + + /// <inheritdoc /> + protected override async Task OnParametersSetAsync() + { + await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTag, "meta", _metaTagId, Attributes!); + } + + /// <inheritdoc /> + public void Dispose() + { + Task.Run(() => JSRuntime.InvokeVoidAsync(HeadManagementInterop.RemoveTag, "meta", _metaTagId).AsTask()); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManager/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs similarity index 53% rename from src/Components/Web.Extensions/src/HeadManager/Title.cs rename to src/Components/Web.Extensions/src/HeadManagement/Title.cs index bfbe5ffa222f..f1a173c660e5 100644 --- a/src/Components/Web.Extensions/src/HeadManager/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -2,15 +2,17 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Threading.Tasks; +using Microsoft.JSInterop; namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> /// A component that changes the title of the document. /// </summary> - public class Title : HeadElementBase + public class Title : ComponentBase { - internal override object ElementKey => "title"; + [Inject] + private IJSRuntime JSRuntime { get; set; } = default!; /// <summary> /// Gets or sets the value to use as the document's title. @@ -18,19 +20,9 @@ public class Title : HeadElementBase [Parameter] public string Value { get; set; } = string.Empty; - internal override async ValueTask<object?> GetInitialStateAsync() + protected override async Task OnParametersSetAsync() { - return await HeadManager.GetTitleAsync(); - } - - internal override ValueTask ResetStateAsync(object? initialState) - { - return HeadManager.SetTitleAsync(initialState); - } - - internal override ValueTask ApplyAsync() - { - return HeadManager.SetTitleAsync(Value); + await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTitle, Value); } } } diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs deleted file mode 100644 index 85317d74483f..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementBase.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// Serves as a base class for components influencing the HTML head tag. - /// </summary> - public abstract class HeadElementBase : ComponentBase, IDisposable - { - /// <summary> - /// The <see cref="Extensions.HeadManager"/> enforcing changes to the head tag. - /// </summary> - [Inject] - protected HeadManager HeadManager { get; set; } = default!; - - internal LinkedListNode<HeadElementBase> Node { get; } - - /// <summary> - /// Gets an object that uniquely identifies the HTML element being modified. - /// </summary> - internal abstract object ElementKey { get; } - - /// <summary> - /// Instantiates a new <see cref="HeadElementBase"/> instance. - /// </summary> - protected HeadElementBase() - { - Node = new LinkedListNode<HeadElementBase>(this); - } - - /// <inheritdoc /> - protected override void OnInitialized() - { - if (HeadManager == null) - { - throw new InvalidOperationException($"{GetType()} requires the {typeof(HeadManager)} service."); - } - } - - /// <inheritdoc /> - protected override void OnParametersSet() - { - HeadManager.NotifyChanged(this); - } - - /// <inheritdoc /> - public void Dispose() - { - HeadManager.NotifyDisposed(this); - } - - internal abstract ValueTask<object?> GetInitialStateAsync(); - - internal abstract ValueTask ResetStateAsync(object? initialState); - - internal abstract ValueTask ApplyAsync(); - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs b/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs deleted file mode 100644 index 319bdabf3dfe..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/HeadElementChain.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using System.Diagnostics; -using System.Threading.Tasks; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// Tracks <see cref="HeadElementBase"/> instances whose effects override each other, organizes them - /// into a priority list, and applies changes from the correct <see cref="HeadElementBase"/>. - /// </summary> - internal class HeadElementChain - { - private readonly LinkedList<HeadElementBase> _priorityChain = new LinkedList<HeadElementBase>(); - - private readonly object? _initialState; - - public HeadElementChain(object? initialState) - { - _initialState = initialState; - } - - public async ValueTask ApplyChangeAsync(HeadElementBase newElement) - { - // Move the element to the end of the priority chain. - if (newElement.Node != _priorityChain.Last) - { - if (newElement.Node.List == _priorityChain) - { - _priorityChain.Remove(newElement.Node); - } - - _priorityChain.AddLast(newElement.Node); - } - - await newElement.ApplyAsync(); - } - - // Returns true if the chain is now empty. - public async ValueTask<bool> DiscardChangeAsync(HeadElementBase discardedElement) - { - Debug.Assert(discardedElement.Node.List == _priorityChain); - - bool needsToApplyChanges = discardedElement.Node == _priorityChain.Last; - - _priorityChain.Remove(discardedElement.Node); - - if (needsToApplyChanges) - { - if (_priorityChain.Last == null) - { - await discardedElement.ResetStateAsync(_initialState); - return true; - } - - await _priorityChain.Last.Value.ApplyAsync(); - } - - return false; - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs deleted file mode 100644 index 9d1fc176438f..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/HeadManager.cs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// A service that manages manipulation of the HTML head element. - /// </summary> - public class HeadManager - { - private const string JsFunctionsPrefix = "_blazorHeadManager"; - - private readonly IJSRuntime _jsRuntime; - - private readonly Dictionary<object, HeadElementChain> _elementChains = new Dictionary<object, HeadElementChain>(); - - private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1); - - private readonly ConcurrentQueue<TaskCompletionSource> _tcsQueue = new ConcurrentQueue<TaskCompletionSource>(); - - /// <summary> - /// Creates a new <see cref="HeadManager"/> instance. - /// </summary> - /// <param name="jsRuntime">The <see cref="IJSRuntime" /> to use.</param> - public HeadManager(IJSRuntime jsRuntime) - { - _jsRuntime = jsRuntime; - } - - internal void NotifyChanged(HeadElementBase element) - => EnqueueTask(() => HandleChangedAsync(element)); - - internal void NotifyDisposed(HeadElementBase element) - => EnqueueTask(() => HandleDisposedAsync(element)); - - private async Task HandleChangedAsync(HeadElementBase element) - { - if (!_elementChains.TryGetValue(element.ElementKey, out var chain)) - { - // No changes to the target element are being tracked - save the initial element state. - var initialElementState = await element.GetInitialStateAsync(); - - chain = new HeadElementChain(initialElementState); - - _elementChains.Add(element.ElementKey, chain); - } - - await chain.ApplyChangeAsync(element); - } - - private async Task HandleDisposedAsync(HeadElementBase element) - { - if (_elementChains.TryGetValue(element.ElementKey, out var chain)) - { - var isChainEmpty = await chain.DiscardChangeAsync(element); - - if (isChainEmpty) - { - _elementChains.Remove(element.ElementKey); - } - } - else - { - // This should never happen, but if it does, we'd like to know. - Debug.Fail("The element key does not exist in any element chain."); - } - } - - internal ValueTask<string> GetTitleAsync() - { - return _jsRuntime.InvokeAsync<string>($"{JsFunctionsPrefix}.getTitle"); - } - - internal ValueTask SetTitleAsync(object? title) - { - return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title!); - } - - internal ValueTask<MetaElementState> GetMetaElementAsync(MetaElementKey key) - { - return _jsRuntime.InvokeAsync<MetaElementState>($"{JsFunctionsPrefix}.getMetaElement", key); - } - - internal ValueTask SetMetaElementAsync(MetaElementKey key, object? metaElement) - { - return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setMetaElement", key, metaElement!); - } - - internal ValueTask SetLinkElementAsync(int id, object? attributes) - { - return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setLinkElement", id, attributes!); - } - - internal ValueTask DeleteLinkElementAsync(int id) - { - return _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.deleteLinkElement", id); - } - - private void EnqueueTask(Func<Task> task) - { - // Create a new TCS for the enqueued task. - var tcs = new TaskCompletionSource(); - - // Define the pipeline to be run when the task gets dequeued. - tcs.Task.ContinueWith(t => task.Invoke().ContinueWith(t => _semaphore.Release())); - - // Reserve the task's position in the queue. - _tcsQueue.Enqueue(tcs); - - _semaphore.WaitAsync().ContinueWith(t => - { - if (_tcsQueue.TryDequeue(out var completedTcs)) - { - // Allow the next task in the queue to proceed. - completedTcs.SetResult(); - } - }); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs deleted file mode 100644 index c1e20b8126fd..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/HeadServiceCollectionExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNetCore.Components.Web.Extensions; - -namespace Microsoft.Extensions.DependencyInjection -{ - /// <summary> - /// Extension methods for registering head management services. - /// </summary> - public static class HeadServiceCollectionExtensions - { - /// <summary> - /// Adds services for head management to the specified <see cref="IServiceCollection"/>. - /// </summary> - /// <param name="services">The <see cref="IServiceCollection"/>.</param> - public static void AddHeadManager(this IServiceCollection services) - { - services.AddScoped<HeadManager>(); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/Meta.cs b/src/Components/Web.Extensions/src/HeadManager/Meta.cs deleted file mode 100644 index a429e3fe330e..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/Meta.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Threading.Tasks; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// A component that adds or updates meta elements in the HTML head. - /// </summary> - public class Meta : HeadElementBase - { - private MetaElementState _state = default!; - - internal override object ElementKey => _state.Key; - - /// <summary> - /// Gets or sets the "name" attribute of the HTML meta tag. - /// </summary> - [Parameter] - public string? Name { get; set; } - - /// <summary> - /// Gets or sets the "http-equiv" attribute of the HTML meta tag. - /// </summary> - [Parameter] - public string? HttpEquiv { get; set; } - - /// <summary> - /// Gets or sets the "property" attribute of the HTML meta tag. - /// </summary> - [Parameter] - public string? Property { get; set; } - - /// <summary> - /// Gets or sets the "content" attribute of the HTML meta tag. - /// </summary> - [Parameter] - public string? Content { get; set; } - - /// <inheritdoc /> - protected override void OnParametersSet() - { - var key = GetKey(); - - if (_state == null) - { - _state = new MetaElementState(); - } - else if (!_state.Key.Equals(key)) - { - // If the key changes, this component now represents a new meta tag. - HeadManager.NotifyDisposed(this); - } - - _state.Key = key; - _state.Content = Content; - - HeadManager.NotifyChanged(this); - } - - internal override ValueTask ApplyAsync() - { - return HeadManager.SetMetaElementAsync(_state.Key, _state); - } - - internal override async ValueTask<object?> GetInitialStateAsync() - { - return await HeadManager.GetMetaElementAsync(_state.Key); - } - - internal override ValueTask ResetStateAsync(object? initialState) - { - return HeadManager.SetMetaElementAsync(_state.Key, initialState); - } - - private MetaElementKey GetKey() - => (Name, HttpEquiv, Property) switch - { - (string name, null, null) => new MetaElementKey("name", name), - (null, string httpEquiv, null) => new MetaElementKey("http-equiv", httpEquiv), - (null, null, string property) => new MetaElementKey("property", property), - - _ => throw new InvalidOperationException( - $"{GetType()} parameters must contain exactly one of " + - $"{nameof(Name)}, {nameof(HttpEquiv)} or {nameof(Property)}.") - }; - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs deleted file mode 100644 index 6e2a735b7675..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElementKey.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// Identifies meta elements by a shared attribute. - /// </summary> - internal readonly struct MetaElementKey - { - public string Name { get; } - - public string Value { get; } - - public MetaElementKey(string name, string value) - { - Name = name; - Value = value; - } - - public override bool Equals(object? obj) - => obj is MetaElementKey other && string.Equals(Name, other.Name) && string.Equals(Value, other.Value); - - public override int GetHashCode() - => Name.GetHashCode() ^ Value.GetHashCode(); - } -} diff --git a/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs b/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs deleted file mode 100644 index a7d735816952..000000000000 --- a/src/Components/Web.Extensions/src/HeadManager/MetaElementState.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal class MetaElementState - { - public MetaElementKey Key { get; set; } = default!; - - public string? Content { get; set; } - } -} diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index e0b99614ba91..8cf53f07e6e8 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -1,19 +1,21 @@ // Local helpers -const getDomMetaElement = (key) => { - const elements = Array.from(document.getElementsByTagName('meta')); - return elements.find(e => e.getAttribute(key.name) === key.value); -}; +const getHeadElement = (tagName, id) => { + const elements = Array.from(document.getElementsByTagName(tagName)); + return elements.find(e => e._blazorId === id); +} -const getDomLinkElement = (id) => { - const elements = Array.from(document.getElementsByTagName('link')); - return elements.find(e => e._blazorLinkId === id); -}; +const getOrCreateHeadElement = (tagName, id) => { + let element = getHeadElement(tagName, id); -const createHeadElement = (tagName) => { - const head = document.getElementsByTagName('head')[0]; - const element = document.createElement(tagName); + if (element) { + return element; + } + element = document.createElement(tagName); + element._blazorId = id; + + const head = document.getElementsByTagName('head')[0]; head.appendChild(element); return element; @@ -21,80 +23,29 @@ const createHeadElement = (tagName) => { // Exported functions -const getTitle = () => { - return document.title; -}; - const setTitle = (title) => { document.title = title; }; -const getMetaElement = (key) => { - const domMetaElement = getDomMetaElement(key); - - if (!domMetaElement) { - return undefined; - } - - return { - key, - content: domMetaElement.getAttribute('content'), - }; -}; - -const setMetaElement = (key, metaElement) => { - let domMetaElement = getDomMetaElement(key); - - if (!metaElement) { - domMetaElement && domMetaElement.remove(); - return true; - } - - if (!domMetaElement) { - domMetaElement = createHeadElement('meta'); - } - - domMetaElement.setAttribute(key.name, key.value); - - if (metaElement.content) { - domMetaElement.setAttribute('content', metaElement.content); - } else { - domMetaElement.removeAttribute('content'); - } - - return true; -}; - -const setLinkElement = (id, attributes) => { - let domLinkElement = getDomLinkElement(id); - - if (domLinkElement) { - // Remove existing attributes - while (domLinkElement.attributes.length > 0) { - domLinkElement.removeAttribute(domLinkElement.attributes[0].name); - } - } else { - domLinkElement = createHeadElement('link'); - domLinkElement._blazorLinkId = id; - } +const setTag = (tagName, id, attributes) => { + let tag = getOrCreateHeadElement(tagName, id); - for (const attributeName in attributes) { - if (attributes.hasOwnProperty(attributeName)) { - domLinkElement.setAttribute(attributeName, attributes[attributeName]); + if (attributes) { + for (let key in attributes) { + if (attributes.hasOwnProperty(key)) { + tag.setAttribute(key, attributes[key]); + } } } }; -const deleteLinkElement = (id) => { - const domLinkElement = getDomLinkElement(id); - domLinkElement && domLinkElement.remove(); +const removeTag = (tagName, id) => { + let tag = getHeadElement(tagName, id); + tag && tag.remove(); }; window._blazorHeadManager = { - getTitle, setTitle, - getMetaElement, - setMetaElement, - setLinkElement, - deleteLinkElement, + setTag, + removeTag, }; diff --git a/src/Components/Web.Extensions/test/HeadManagerTest.cs b/src/Components/Web.Extensions/test/HeadManagerTest.cs deleted file mode 100644 index 56de96dcd3da..000000000000 --- a/src/Components/Web.Extensions/test/HeadManagerTest.cs +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Concurrent; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.AspNetCore.Components.Test.Helpers; -using Microsoft.JSInterop; -using Moq; -using Xunit; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - public class HeadManagerTest - { - [Fact] - public async void HeadElementChain_StateRevertsWhenLastChangeDiscarded() - { - var initialState = "initial state"; - var headElementChain = new HeadElementChain(initialState); - - var element1 = new TestHeadElement(); - var element2 = new TestHeadElement(); - - // Add elements to chain - await headElementChain.ApplyChangeAsync(element1); - await headElementChain.ApplyChangeAsync(element2); - - // Verify initial number of times applied - Assert.Equal(1, element1.NumTimesApplied); - Assert.Equal(1, element2.NumTimesApplied); - - // Discard most recent element - await headElementChain.DiscardChangeAsync(element2); - - // Verify that only initial element was applied again - Assert.Equal(2, element1.NumTimesApplied); - Assert.Equal(1, element2.NumTimesApplied); - - // Discard the last element - await headElementChain.DiscardChangeAsync(element1); - - // Verify that the initial state was preserved - Assert.Equal(initialState, element1.StateAfterReset); - } - - [Fact] - public async void HeadElementChain_StateDoesNotUpdateWhenNonLastChangeDiscarded() - { - var headElementChain = new HeadElementChain(null); - - var element1 = new TestHeadElement(); - var element2 = new TestHeadElement(); - - // Add elements to chain - await headElementChain.ApplyChangeAsync(element1); - await headElementChain.ApplyChangeAsync(element2); - - // Discard first element - await headElementChain.DiscardChangeAsync(element1); - - // Verify that each element was only applied once - Assert.Equal(1, element1.NumTimesApplied); - Assert.Equal(1, element2.NumTimesApplied); - } - - [Fact] - public async void HeadManager_ChangesAppliedInRequestedOrder() - { - var headManager = new HeadManager(Mock.Of<IJSRuntime>()); - var numElements = 5; - var maxDelay = 1000; - - var completedOrder = new ConcurrentQueue<int>(); - var blockingTaskSource = new TaskCompletionSource(); - - var elements = Enumerable.Range(0, numElements) - .Select(i => new TestHeadElement - { - Key = i, - OnApplied = async () => - { - // This delay would encourage changes to be applied in reverse order in a non-blocking handler - var delay = maxDelay - i * (maxDelay / numElements); - - await Task.Delay(delay); - - completedOrder.Enqueue(i); - } - }) - .ToList(); - - // Request changes in order of increasing element key - foreach (var element in elements) - { - headManager.NotifyChanged(element); - } - - // Add one more change that, when handled, unblocks this test - headManager.NotifyChanged(new TestHeadElement - { - OnApplied = () => - { - blockingTaskSource.SetResult(); - return Task.CompletedTask; - } - }); - - // Wait for the head manager to finish applying all changes - await blockingTaskSource.Task; - - // Verify that all changes have been applied - Assert.Equal(numElements, completedOrder.Count); - - // Verify that all changes were applied in the correct order - Assert.All(elements, e => Assert.True(completedOrder.TryDequeue(out var key) && key.Equals(e.Key))); - } - - [Theory] - [InlineData(null, null, null)] - [InlineData("name", "httpEquiv", null)] - [InlineData("name", null, "property")] - [InlineData(null, "httpEquiv", "property")] - [InlineData("name", "httpEquiv", "property")] - public void Meta_ThrowsWhenGivenInvalidParameters(string name, string httpEquiv, string property) - { - var serviceProvider = new TestServiceProvider(); - serviceProvider.AddService(new HeadManager(Mock.Of<IJSRuntime>())); - - var testRenderer = new TestRenderer(serviceProvider); - var rootComponent = new TestHostComponent(BuildMetaComponent(name, httpEquiv, property)); - var componentId = testRenderer.AssignRootComponentId(rootComponent); - - var ex = Assert.Throws<InvalidOperationException>(() => testRenderer.RenderRootComponent(componentId)); - Assert.Contains("parameters must contain exactly one of", ex.Message); - } - - [Theory] - [InlineData("name", null, null)] - [InlineData(null, "httpEquiv", null)] - [InlineData(null, null, "property")] - public void Meta_DoesNotThrowWhenGivenValidParameters(string name, string httpEquiv, string property) - { - var serviceProvider = new TestServiceProvider(); - serviceProvider.AddService(new HeadManager(Mock.Of<IJSRuntime>())); - - var testRenderer = new TestRenderer(serviceProvider); - var rootComponent = new TestHostComponent(BuildMetaComponent(name, httpEquiv, property)); - var componentId = testRenderer.AssignRootComponentId(rootComponent); - - testRenderer.RenderRootComponent(componentId); - } - - private Action<RenderTreeBuilder> BuildMetaComponent(string name, string httpEquiv, string property) - => (builder) => - { - builder.OpenComponent<Meta>(0); - builder.AddAttribute(1, nameof(Meta.Name), name); - builder.AddAttribute(2, nameof(Meta.HttpEquiv), httpEquiv); - builder.AddAttribute(3, nameof(Meta.Property), property); - builder.AddAttribute(4, nameof(Meta.Content), "test content"); - builder.CloseComponent(); - }; - - class TestHostComponent : AutoRenderComponent - { - private readonly Action<RenderTreeBuilder> _buildRenderTree; - - public TestHostComponent(Action<RenderTreeBuilder> buildRenderTree) - { - _buildRenderTree = buildRenderTree; - } - - protected override void BuildRenderTree(RenderTreeBuilder builder) - => _buildRenderTree(builder); - } - - class TestHeadElement : HeadElementBase - { - internal override object ElementKey => Key; - - public object Key { get; set; } = new object(); - - public Func<Task> OnApplied { get; set; } = () => Task.CompletedTask; - - public int NumTimesApplied { get; private set; } = 0; - public object StateAfterReset { get; private set; } = null; - - internal override async ValueTask ApplyAsync() - { - NumTimesApplied++; - - await OnApplied(); - } - - internal override ValueTask<object> GetInitialStateAsync() - { - return ValueTask.FromResult<object>(null); - } - - internal override ValueTask ResetStateAsync(object initialState) - { - StateAfterReset = initialState; - - return ValueTask.CompletedTask; - } - } - } -} diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs index ea937ced2d89..0011402990ad 100644 --- a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs @@ -1,7 +1,6 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System.Collections.Generic; using System.Linq; using BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest; @@ -31,7 +30,7 @@ protected override void InitializeAsyncCore() } [Fact] - public void Title_AddsAndDiscardsChangesInReverseOrder() + public void Title_DoesChangeDocumentTitle() { var titleCount = 3; var titleButtonsById = Enumerable.Range(0, titleCount) @@ -48,7 +47,16 @@ public void Title_AddsAndDiscardsChangesInReverseOrder() } [Fact] - public void Meta_AddsAndDiscardsChangesInReverseOrder() + public void Title_DeepestComponentHasPriority() + { + var nestedTitleButton = Browser.FindElement(By.Id("button-title-nested")); + nestedTitleButton.Click(); + + Browser.Equal("Layer 4", () => Browser.Title); + } + + [Fact] + public void Meta_AddsAndRemovesElements() { var metaCount = 3; var metaButtonsById = Enumerable.Range(0, metaCount) @@ -60,57 +68,64 @@ public void Meta_AddsAndDiscardsChangesInReverseOrder() var (id, button) = buttonById; button.Click(); - var metaElement = Browser.FindElements(By.TagName("meta")) - .Where(e => e.GetAttribute("name").Equals("multiple-metas")) - .Single(); - - Browser.Equal($"Meta {id}", () => metaElement.GetAttribute("content")); + Browser.Exists(By.Id($"Meta {id}")); }); - } - - [Fact] - public void Title_DeepestComponentHasPriority() - { - var nestedTitleButton = Browser.FindElement(By.Id("button-title-nested")); - - Browser.Equal("Basic test app", () => Browser.Title); - nestedTitleButton.Click(); + Assert.All(metaButtonsById, buttonById => + { + var (id, button) = buttonById; + button.Click(); - Browser.Equal("Layer 4", () => Browser.Title); + Browser.DoesNotExist(By.Id($"Meta {id}")); + }); } [Fact] - public void Meta_DeepestComponentHasPriority() + public void Meta_UpdatesSameElementWhenComponentPropertyChanged() { - var nestedMetaButton = Browser.FindElement(By.Id("button-meta-nested")); + var metaAttributeInput1 = Browser.FindElement(By.Id("meta-attr-input-1")); + var metaAttributeInput2 = Browser.FindElement(By.Id("meta-attr-input-2")); + var metaElement = Browser.FindElement(By.Id("meta-with-bindings")); - Browser.Empty(FindNestedMetas); + Browser.Equal("First attribute", () => metaElement.GetAttribute("attr1")); + Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); - nestedMetaButton.Click(); + metaAttributeInput1.Clear(); + metaAttributeInput1.SendKeys("hello\n"); - var nestedMetaElement = FindNestedMetas().Single(); + Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); + Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); - Browser.Equal("Layer 4", () => nestedMetaElement.GetAttribute("content")); + metaAttributeInput2.Clear(); + metaAttributeInput2.SendKeys("world\n"); - IEnumerable<IWebElement> FindNestedMetas() - => Browser.FindElements(By.TagName("meta")) - .Where(e => e.GetAttribute("http-equiv")?.Equals("nested-meta") ?? false); + Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); + Browser.Equal("world", () => metaElement.GetAttribute("attr2")); } [Fact] - public void Link_NestedComponentsDoNotOverride() + public void Link_AddsAndRemovesElements() { - var nestedLinkButton = Browser.FindElement(By.Id("button-link-nested")); + var linkCount = 3; + var linkButtonsById = Enumerable.Range(0, linkCount) + .Select(i => (i, Browser.FindElement(By.Id($"button-link-{i}")))) + .ToList(); - Browser.Empty(FindNestedLinks); + Assert.All(linkButtonsById, buttonById => + { + var (id, button) = buttonById; + button.Click(); - nestedLinkButton.Click(); + Browser.Exists(By.Id($"Link {id}")); + }); - Browser.Equal(3, () => FindNestedLinks().Count()); + Assert.All(linkButtonsById, buttonById => + { + var (id, button) = buttonById; + button.Click(); - IEnumerable<IWebElement> FindNestedLinks() - => Browser.FindElements(By.Id("nested-link")); + Browser.DoesNotExist(By.Id($"Link {id}")); + }); } [Fact] diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index a25284e95888..6a6f3dc568e8 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -3,15 +3,15 @@ <p> Multiple title elements:<br /> - @for (int i = 0; i < titles.Length; i++) + @for (int i = 0; i < 3; i++) { var titleId = i; - <button id="button-title-@i" @onclick="() => Toggle(ref titles[titleId])"> - @GetToggleString(titles[titleId]) title @titleId + <button id="button-title-@i" @onclick="() => SetSelectedTitle(titleId)"> + Title @titleId </button> - if (titles[titleId]) + if (selectedTitle == titleId) { <Title Value="@($"Title {titleId}")" /> } @@ -30,52 +30,45 @@ if (metas[metaId]) { - <Meta Name="multiple-metas" Content="@($"Meta {metaId}")" /> + <Meta id="@($"Meta {metaId}")" /> } } </p> <p> - Nested title elements:<br /> - - <button id="button-title-nested" @onclick="() => Toggle(ref renderNestedTitle)"> - @GetToggleString(renderNestedTitle) title nested - </button> + Multiple link elements:<br /> - @if (renderNestedTitle) + @for (int i = 0; i < links.Length; i++) { - <div> - <Title Value="Layer 1" /> - <div> - <Title Value="Layer 2" /> - <div> - <Title Value="Layer 3" /> - <div> - <Title Value="Layer 4" /> - </div> - </div> - </div> - </div> + var linkId = i; + + <button id="button-link-@i" @onclick="() => Toggle(ref links[linkId])"> + @GetToggleString(links[linkId]) link @linkId</button> + + if (links[linkId]) + { + <Link id="@($"Link {linkId}")" /> + } } </p> <p> - Nested meta elements:<br /> + Nested title elements:<br /> - <button id="button-meta-nested" @onclick="() => Toggle(ref renderNestedMeta)"> - @GetToggleString(renderNestedMeta) meta http-equiv nested + <button id="button-title-nested" @onclick="() => SetSelectedTitle(3)"> + Nested titles </button> - @if (renderNestedMeta) + @if (selectedTitle == 3) { <div> - <Meta HttpEquiv="nested-meta" Content="Layer 1" /> + <Title Value="Layer 1" /> <div> - <Meta HttpEquiv="nested-meta" Content="Layer 2" /> + <Title Value="Layer 2" /> <div> - <Meta HttpEquiv="nested-meta" Content="Layer 3" /> + <Title Value="Layer 3" /> <div> - <Meta HttpEquiv="nested-meta" Content="Layer 4" /> + <Title Value="Layer 4" /> </div> </div> </div> @@ -84,24 +77,10 @@ </p> <p> - Nested link elements:<br /> - - <button id="button-link-nested" @onclick="() => Toggle(ref renderNestedLink)"> - @GetToggleString(renderNestedLink) link nested - </button> - - @if (renderNestedLink) - { - <div> - <Link id="nested-link" attr1="some attribute" attr2="Layer 1" /> - <div> - <Link id="nested-link" attr1="some attribute" attr2="Layer 2" /> - <div> - <Link id="nested-link" attr1="some other attribute" attr2="Layer 3" extra-attr="one more" /> - </div> - </div> - </div> - } + Meta elements w/ bindings:<br /> + <input id="meta-attr-input-1" @bind="@metaAttribute1" placeholder="Attribute 1" /><br /> + <input id="meta-attr-input-2" @bind="@metaAttribute2" placeholder="Attribute 2" /><br /> + <Meta id="meta-with-bindings" attr1="@metaAttribute1" attr2="@metaAttribute2" /> </p> <p> @@ -112,12 +91,13 @@ </p> @code { - private readonly bool[] titles = Enumerable.Repeat(false, 3).ToArray(); private readonly bool[] metas = Enumerable.Repeat(false, 3).ToArray(); + private readonly bool[] links = Enumerable.Repeat(false, 3).ToArray(); - private bool renderNestedTitle = false; - private bool renderNestedMeta = false; - private bool renderNestedLink = false; + private int selectedTitle = -1; + + private string metaAttribute1 = "First attribute"; + private string metaAttribute2 = "Second attribute"; private string linkAttribute1 = "First attribute"; private string linkAttribute2 = "Second attribute"; @@ -128,6 +108,12 @@ StateHasChanged(); } + private void SetSelectedTitle(int title) + { + selectedTitle = title; + StateHasChanged(); + } + private string GetToggleString(bool b) => b ? "Disable" : "Enable"; } diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index eb6b2c341d85..1e640b59dc64 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -39,8 +39,6 @@ public static async Task Main(string[] args) policy.RequireAssertion(ctx => ctx.User.Identity.Name?.StartsWith("B") ?? false)); }); - builder.Services.AddSingleton<HeadManager>(); - builder.Services.AddDataProtection(); builder.Services.AddTransient<ProtectedLocalStorage>(); diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 5ecded92a4e3..90d6e862fa91 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -21,7 +21,6 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddProtectedBrowserStorage(); - services.AddHeadManager(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 01ae712b91dc19464acdd1862529acd24fd525f2 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 15 Jul 2020 14:28:12 -0700 Subject: [PATCH 13/20] Prerendering support. --- .../HeadManagement/HeadManagementInterop.cs | 13 -- ...adManagementServiceCollectionExtensions.cs | 23 ++++ .../src/HeadManagement/HeadManager.cs | 56 ++++++++ .../src/HeadManagement/HeadTagBase.cs | 73 ++++++++++ .../src/HeadManagement/IHeadElement.cs | 10 ++ .../Web.Extensions/src/HeadManagement/Link.cs | 27 +--- .../Web.Extensions/src/HeadManagement/Meta.cs | 29 +--- .../ServiceProviderExtensions.cs | 16 +++ .../src/HeadManagement/TagElement.cs | 22 +++ .../src/HeadManagement/Title.cs | 28 +++- .../src/HeadManagement/TitleElement.cs | 12 ++ ...spNetCore.Components.Web.Extensions.csproj | 1 + .../Web.Extensions/src/wwwroot/headManager.js | 129 +++++++++++++----- .../Web.JS/dist/Release/blazor.server.js | 2 +- .../Web.JS/dist/Release/blazor.webassembly.js | 2 +- .../Web.JS/src/Rendering/LogicalElements.ts | 6 +- .../ServerExecutionTests/PrerenderingTest.cs | 45 ++++++ .../test/E2ETest/Tests/HeadComponentsTest.cs | 12 +- .../PrerenderedHeadComponents.razor | 29 ++++ .../test/testassets/BasicTestApp/Program.cs | 2 + .../TestServer/Pages/PrerenderedHost.cshtml | 3 + .../TestServer/PrerenderedStartup.cs | 2 + .../testassets/TestServer/ServerStartup.cs | 2 + 23 files changed, 438 insertions(+), 106 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/TagElement.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs create mode 100644 src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs deleted file mode 100644 index e4a972ee2b1d..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementInterop.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal static class HeadManagementInterop - { - private const string Prefix = "_blazorHeadManager."; - - public const string SetTitle = Prefix + "setTitle"; - - public const string SetTag = Prefix + "setTag"; - - public const string RemoveTag = Prefix + "removeTag"; - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs new file mode 100644 index 000000000000..3c2ebcd0682d --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs @@ -0,0 +1,23 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.AspNetCore.Components.Server.Circuits; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + /// <summary> + /// Extension methods for registering head management services. + /// </summary> + public static class HeadManagementServiceCollectionExtensions + { + /// <summary> + /// Adds services for head management to the specified <see cref="IServiceCollection"/>. + /// </summary> + /// <param name="services">The <see cref="IServiceCollection"/>.</param> + public static void AddHeadManagement(this IServiceCollection services) + { + services.AddScoped<CircuitHandler, HeadManager>(); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs new file mode 100644 index 000000000000..5dc4adcd9f10 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs @@ -0,0 +1,56 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Runtime.InteropServices; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.AspNetCore.Components.Server.Circuits; +using Microsoft.JSInterop; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal class HeadManager : CircuitHandler + { + private const string JsFunctionsPrefix = "_blazorHeadManager"; + + private readonly IJSRuntime _jsRuntime; + + public bool IsPrerendering { get; private set; } + + public HeadManager(IJSRuntime jsRuntime) + { + _jsRuntime = jsRuntime; + + IsPrerendering = !RuntimeInformation.IsOSPlatform(OSPlatform.Browser); + } + + public void BuildHeadElementComment<TElement>(RenderTreeBuilder builder, TElement element) where TElement : IHeadElement + { + builder.AddMarkupContent(0, $"<!--Head:{JsonSerializer.Serialize(element, JsonSerializerOptionsProvider.Options)}-->"); + } + + public async ValueTask SetTitleAsync(string title) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + } + + public async ValueTask ApplyTagAsync(TagElement tag, string id) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.applyHeadTag", tag, id); + } + + public async ValueTask RemoveTagAsync(string id) + { + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removeHeadTag", id); + } + + public override async Task OnCircuitOpenedAsync(Circuit circuit, CancellationToken cancellationToken) + { + IsPrerendering = false; + + await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removePrerenderedHeadTags"); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs new file mode 100644 index 000000000000..d351a3743f00 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -0,0 +1,73 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Rendering; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + /// <summary> + /// Serves as a base for components that represent tags in the HTML head. + /// </summary> + public abstract class HeadTagBase : ComponentBase, IDisposable + { + private readonly string _id = Guid.NewGuid().ToString("N"); + + private TagElement _tagElement; + + private HeadManager _headManager = default!; + + [Inject] + private IServiceProvider ServiceProvider { get; set; } = default!; + + /// <summary> + /// Gets or sets a collection of additional attributes that will be applied to the meta element. + /// </summary> + [Parameter(CaptureUnmatchedValues = true)] + public IReadOnlyDictionary<string, object>? Attributes { get; set; } + + protected HeadTagBase(string tagName) + { + _tagElement = new TagElement(tagName); + } + + /// <inheritdoc /> + protected override void OnInitialized() + { + _headManager = ServiceProvider.GetHeadManager() ?? + throw new InvalidOperationException($"{GetType()} requires a {typeof(HeadManager)} service."); + } + + /// <inheritdoc /> + protected override void OnParametersSet() + { + _tagElement.Attributes = Attributes; + } + + /// <inheritdoc /> + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await _headManager.ApplyTagAsync(_tagElement, _id); + } + + /// <inheritdoc /> + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + if (_headManager.IsPrerendering) + { + _headManager.BuildHeadElementComment(builder, _tagElement); + } + } + + /// <inheritdoc /> + public void Dispose() + { + if (!_headManager.IsPrerendering) + { + _ = _headManager.RemoveTagAsync(_id); + } + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs b/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs new file mode 100644 index 000000000000..7c5553166133 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs @@ -0,0 +1,10 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal interface IHeadElement + { + public string Type { get; } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs index 65fe4ef62fdc..bac87bbff11c 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Link.cs @@ -1,37 +1,18 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.JSInterop; - namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> - /// A component that adds a link element to the HTML head. + /// A component that adds a link tag to the HTML head. /// </summary> - public class Link : ComponentBase, IDisposable + public class Link : HeadTagBase { - private readonly string _linkTagId = Guid.NewGuid().ToString("N"); - - [Inject] - private IJSRuntime JSRuntime { get; set; } = default!; - /// <summary> - /// Gets or sets a collection of additional attributes that will be applied to the link element. + /// Instantiates a new <see cref="Link"/> instance. /// </summary> - [Parameter(CaptureUnmatchedValues = true)] - public IReadOnlyDictionary<string, object>? Attributes { get; set; } - - protected override async Task OnParametersSetAsync() - { - await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTag, "link", _linkTagId, Attributes!); - } - - public void Dispose() + public Link() : base("link") { - Task.Run(() => JSRuntime.InvokeVoidAsync(HeadManagementInterop.RemoveTag, "link", _linkTagId)); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs index 7d232e106d6a..62ba8c0bf0f0 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs @@ -1,39 +1,18 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.JSInterop; - namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> - /// A component that adds a meta element in the HTML head. + /// A component that adds a meta tag to the HTML head. /// </summary> - public class Meta : ComponentBase, IDisposable + public class Meta : HeadTagBase { - private readonly string _metaTagId = Guid.NewGuid().ToString("N"); - - [Inject] - private IJSRuntime JSRuntime { get; set; } = default!; - /// <summary> - /// Gets or sets a collection of additional attributes that will be applied to the link element. + /// Instantiates a new <see cref="Meta"/> instance. /// </summary> - [Parameter(CaptureUnmatchedValues = true)] - public IReadOnlyDictionary<string, object>? Attributes { get; set; } - - /// <inheritdoc /> - protected override async Task OnParametersSetAsync() - { - await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTag, "meta", _metaTagId, Attributes!); - } - - /// <inheritdoc /> - public void Dispose() + public Meta() : base("meta") { - Task.Run(() => JSRuntime.InvokeVoidAsync(HeadManagementInterop.RemoveTag, "meta", _metaTagId).AsTask()); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs new file mode 100644 index 000000000000..183c6a3bd7b3 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs @@ -0,0 +1,16 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Linq; +using Microsoft.AspNetCore.Components.Server.Circuits; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal static class ServiceProviderExtensions + { + public static HeadManager? GetHeadManager(this IServiceProvider serviceProvider) + => serviceProvider.GetServices<CircuitHandler>().OfType<HeadManager>().SingleOrDefault(); + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs new file mode 100644 index 000000000000..5a49da78dece --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs @@ -0,0 +1,22 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal struct TagElement : IHeadElement + { + public string Type => "tag"; + + public string TagName { get; } + + public IReadOnlyDictionary<string, object>? Attributes { get; set; } + + public TagElement(string tagName) + { + TagName = tagName; + Attributes = null; + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs index f1a173c660e5..5d4b25b34714 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -1,8 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Threading.Tasks; -using Microsoft.JSInterop; +using Microsoft.AspNetCore.Components.Rendering; namespace Microsoft.AspNetCore.Components.Web.Extensions { @@ -11,8 +12,10 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions /// </summary> public class Title : ComponentBase { + private HeadManager _headManager = default!; + [Inject] - private IJSRuntime JSRuntime { get; set; } = default!; + private IServiceProvider ServiceProvider { get; set; } = default!; /// <summary> /// Gets or sets the value to use as the document's title. @@ -20,9 +23,26 @@ public class Title : ComponentBase [Parameter] public string Value { get; set; } = string.Empty; - protected override async Task OnParametersSetAsync() + /// <inheritdoc /> + protected override void OnInitialized() + { + _headManager = ServiceProvider.GetHeadManager() ?? + throw new InvalidOperationException($"{GetType()} requires a {typeof(HeadManager)} service."); + } + + /// <inheritdoc /> + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await _headManager.SetTitleAsync(Value); + } + + /// <inheritdoc /> + protected override void BuildRenderTree(RenderTreeBuilder builder) { - await JSRuntime.InvokeVoidAsync(HeadManagementInterop.SetTitle, Value); + if (_headManager.IsPrerendering) + { + _headManager.BuildHeadElementComment(builder, new TitleElement { Title = Value }); + } } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs new file mode 100644 index 000000000000..d05338c6f156 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs @@ -0,0 +1,12 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal struct TitleElement : IHeadElement + { + public string Type => "title"; + + public string Title { get; set; } + } +} diff --git a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj index dcc5f5348a90..29b2f20d061a 100644 --- a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj +++ b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj @@ -11,6 +11,7 @@ <ItemGroup> <Reference Include="Microsoft.AspNetCore.Components" /> + <Reference Include="Microsoft.AspNetCore.Components.Server" /> <Reference Include="Microsoft.AspNetCore.DataProtection" /> <Reference Include="Microsoft.JSInterop" /> </ItemGroup> diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index 8cf53f07e6e8..ae5ac0017148 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -1,51 +1,110 @@ -// Local helpers +(function () { + // Local helpers -const getHeadElement = (tagName, id) => { - const elements = Array.from(document.getElementsByTagName(tagName)); - return elements.find(e => e._blazorId === id); -} + const blazorIdAttributeName = '_blazor_id'; + const headCommentRegularExpression = /\W*Head:[^{]*(.*)$/; + const prerenderedTags = []; -const getOrCreateHeadElement = (tagName, id) => { - let element = getHeadElement(tagName, id); + function createHeadTag({ tagName, attributes }, id) { + const tagElement = document.createElement(tagName); - if (element) { - return element; + if (id) { + tagElement.setAttribute(blazorIdAttributeName, id); + } + + if (attributes) { + for (const key in attributes) { + if (attributes.hasOwnProperty(key)) { + tagElement.setAttribute(key, attributes[key]); + } + } + } + + document.head.appendChild(tagElement); + + return tagElement; } - element = document.createElement(tagName); - element._blazorId = id; + function resolvePrerenderedHeadComponents(node) { + node.childNodes.forEach((childNode) => { + const headElement = parseHeadComment(childNode); - const head = document.getElementsByTagName('head')[0]; - head.appendChild(element); + if (headElement) { + applyPrerenderedHeadComponent(headElement); + } else { + resolvePrerenderedHeadComponents(childNode); + } + }); + } - return element; -}; + function applyPrerenderedHeadComponent(headElement) { + switch (headElement.type) { + case 'title': + setTitle(headElement.title); + break; + case 'tag': + const tag = createHeadTag(headElement); + prerenderedTags.push(tag); + break; + } + } -// Exported functions + function parseHeadComment(node) { + if (!node || node.nodeType != Node.COMMENT_NODE) { + return; + } -const setTitle = (title) => { - document.title = title; -}; + const commentText = node.textContent; -const setTag = (tagName, id, attributes) => { - let tag = getOrCreateHeadElement(tagName, id); + if (!commentText) { + return; + } - if (attributes) { - for (let key in attributes) { - if (attributes.hasOwnProperty(key)) { - tag.setAttribute(key, attributes[key]); + const headStartComment = new RegExp(headCommentRegularExpression); + const definition = headStartComment.exec(commentText); + const json = definition && definition[1]; + + if (json) { + try { + return JSON.parse(json); + } catch (error) { + throw new Error(`Found malformed head comment '${commentText}'.`); } + } else { + return; } } -}; -const removeTag = (tagName, id) => { - let tag = getHeadElement(tagName, id); - tag && tag.remove(); -}; + // Exported functions + + function setTitle(title) { + document.title = title; + } + + function applyHeadTag(tag, id) { + removeHeadTag(id); + createHeadTag(tag, id); + } + + function removeHeadTag(id) { + let tag = document.head.querySelector(`[${blazorIdAttributeName}='${id}']`); + tag && tag.remove(); + } + + function removePrerenderedHeadTags() { + prerenderedTags.forEach((tag) => { + tag.remove(); + }); + + prerenderedTags.length = 0; + } + + window._blazorHeadManager = { + setTitle, + applyHeadTag, + removeHeadTag, + removePrerenderedHeadTags, + }; -window._blazorHeadManager = { - setTitle, - setTag, - removeTag, -}; + resolvePrerenderedHeadComponents(document); +})(); diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index d31bbe381a7f..ccb9e6880658 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh <http://feross.org> * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return u(this,e,t,n)}function u(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=s(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):h(e,t);if("Buffer"===t.type&&i(t.data))return h(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function h(e,t){var n=t.length<0?0:0|p(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(u(e,i)===u(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===c)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+c>s&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;h<c;h++)if(u(e,i+h)!==u(t,h)){f=!1;break}if(f)return i}return-1}function m(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function w(e,t,n,r){return q(F(t,e.length-n),e,n,r)}function E(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function S(e,t,n,r){return E(e,t,n,r)}function C(e,t,n,r){return q(H(t),e,n,r)}function I(e,t,n,r){return q(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,c,u=e[o],l=null,f=u>239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return f(null,e)},c.allocUnsafeSlow=function(e){return f(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},c.byteLength=d,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)y(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)y(this,t,t+3),y(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;f<s;++f)if(u[f]!==l[f]){i=u[f],a=l[f];break}return i<a?-1:a<i?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=U(e[i]);return o}function O(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function R(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var o=t-e;n=new c(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=c.isBuffer(e)?e:F(new c(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var N=/[^+\/0-9A-Za-z-_]/g;function U(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else h(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function c(e){return e[o]||null}function u(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=u(c(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function h(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):h(e,c(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=u(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=u(t).splice(n,1)[0];if(r instanceof Comment)for(var o=u(r);o.length>0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new d(e,t)),1!==u.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(11).Buffer)},function(e,t,n){var r=n(61),o=n(36),i=n(15).Buffer;function a(e){if(!(this instanceof a))return new a(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);r.call(this)}o.inherits(a,r),a.prototype._offset=function(e){var t,n=0,r=0;if(0===e)return[0,0];for(;r<this._bufs.length;r++){if(e<(t=n+this._bufs[r].length)||r==this._bufs.length-1)return[r,e-n];n=t}},a.prototype.append=function(e){var t=0;if(i.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof a)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(i.from(e)));return this},a.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},a.prototype._write=function(e,t,n){this._appendBuffer(e),"function"==typeof n&&n()},a.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},a.prototype.end=function(e){r.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},a.prototype.get=function(e){return this.slice(e,e+1)[0]},a.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},a.prototype.copy=function(e,t,n,r){if(("number"!=typeof n||n<0)&&(n=0),("number"!=typeof r||r>this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a<this._bufs.length;a++)this._bufs[a].copy(e,f),f+=this._bufs[a].length;return e}if(l<=this._bufs[c[0]].length-h)return s?this._bufs[c[0]].copy(e,t,h,h+l):this._bufs[c[0]].slice(h,h+l);for(s||(e=i.allocUnsafe(u)),a=c[0];a<this._bufs.length;a++){if(!(l>(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},a.prototype.destroy=function(){this._bufs.length=0,this.length=0,this.push(null)},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};for(var t in e)!function(t){a.prototype[t]=function(n){return this.slice(n,n+e[t])[t](0)}}(t)}(),e.exports=a},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,n)}));case 3:return t.nextTick((function(){e.call(null,n,r)}));case 4:return t.nextTick((function(){e.call(null,n,r,o)}));default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick((function(){e.apply(null,i)}))}}}:e.exports=t}).call(this,n(14))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),c=n(8),u=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),h={submit:!0},p={},d=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){h[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),c.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){u.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var c=i.getClosestDomElement(o).ownerDocument,l=c&&c.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&c&&c.activeElement!==l&&l.focus(),u.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var c,u=0,l=o,f=e.arrayBuilderSegmentReader,h=e.editReader,p=e.frameReader,d=f.values(a),g=f.offset(a),y=g+f.count(a),v=g;v<y;v++){var b=e.diffReader.editsEntry(d,v),m=h.editType(b);switch(m){case r.EditType.prependFrame:var w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);this.insertFrame(e,t,n,l+S,s,E,w);break;case r.EditType.removeFrame:S=h.siblingIndex(b);i.removeLogicalChild(n,l+S);break;case r.EditType.setAttribute:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=h.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);var _=i.getLogicalChild(n,l+S);if(!(_ instanceof Text))throw new Error("Cannot set text content on non-text child");_.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);i.removeLogicalChild(n,l+S),this.insertMarkup(e,n,l+S,E);break;case r.EditType.stepIn:S=h.siblingIndex(b);n=i.getLogicalChild(n,l+S),u++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--u?o:0;break;case r.EditType.permutationListEntry:(c=c||[]).push({fromSiblingIndex:l+h.siblingIndex(b),toSiblingIndex:l+h.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,c),c=void 0;break;default:throw new Error("Unknown edit type: "+m)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,c){var u=e.frameReader,l=u.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,c),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,c+1,c+u.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,u.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,c){var u=e.frameReader,l=u.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),h=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=c+u.subtreeLength(s),d=c+1;d<p;d++){var g=e.referenceFramesEntry(a,d);if(u.frameType(g)!==r.FrameType.attribute){this.insertFrameRange(e,t,h,0,a,d,p);break}this.applyAttribute(e,t,f,g)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&v(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),c=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),u=0;c.firstChild;)i.insertLogicalChild(c.firstChild,a,u++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=y(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=y(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=y(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(v(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,c=i;c<a;c++){var u=e.referenceFramesEntry(o,c);r+=this.insertFrame(e,t,n,r,o,u,c),c+=g(e,u)}return r-s},e}();function g(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function y(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function v(e,t){e.value=t||""}t.BrowserRenderer=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new c(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,c=null,u=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var h=f.getHandler(e.type);if(h&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){c||(c=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(h.renderingComponentId,e);this.onEvent(e,h.eventHandlerId,c,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=u||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new u:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var c=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),u=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var c=63&e[t++],u=(7&i)<<18|a<<12|s<<6|c;u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n<i;c=r[++n])g(c)||!w(c)?a+=" "+c:a+=" "+s(c);return a},t.deprecate=function(n,r){if(void 0!==e&&!0===e.noDeprecation)return n;if(void 0===e)return function(){return t.deprecate(n,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),o=!0}return n.apply(this,arguments)}};var i,a={};function s(e,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a<s;++a)P(t,String(a))?i.push(h(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(h(e,t,n,r,o,!0))})),i}(e,n,r,s,a):a.map((function(t){return h(e,n,r,s,t,I)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),x&&Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=x,t.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then((function(t){e.nextTick(a,null,t)}),(function(t){e.nextTick(O,t,a)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.defineProperties(n,r(t)),n}}).call(this,n(14))},function(e,t,n){"use strict";(function(t,r){var o=n(22);e.exports=m;var i,a=n(62);m.ReadableState=b;n(38).EventEmitter;var s=function(e,t){return e.listeners(t).length},c=n(39),u=n(15).Buffer,l=t.Uint8Array||function(){};var f=n(20);f.inherits=n(16);var h=n(63),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var d,g=n(64),y=n(40);f.inherits(m,c);var v=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(10));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(41).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function m(e){if(i=i||n(10),!(this instanceof m))return new m(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,C(e)}(e,a)):(o||(i=function(e,t){var n;r=t,u.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function E(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&C(e)),_(e,t)}Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),m.prototype.destroy=y.destroy,m.prototype._undestroy=y.undestroy,m.prototype._destroy=function(e,t){this.push(null),t(e)},m.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=u.from(e,t),t=""),n=!0),w(this,e,t,!1,n)},m.prototype.unshift=function(e){return w(this,e,null,!0,!1)},m.prototype.isPaused=function(){return!1===this._readableState.flowing},m.prototype.setEncoding=function(e){return d||(d=n(41).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};function S(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(p("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function T(e){p("readable nexttick read 0"),e.read(0)}function P(e,t){t.reading||(p("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(p("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}m.prototype.read=function(e){p("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&p("length less than watermark",o=!0),t.ended||t.reading?p("reading or ended",o=!1):o&&(p("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=S(n,t))),null===(r=e>0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=D(t.pipes,e);return-1===a||(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},m.prototype.on=function(e,t){var n=c.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&C(this):o.nextTick(T,this))}return n},m.prototype.addListener=m.prototype.on,m.prototype.resume=function(){var e=this._readableState;return e.flowing||(p("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(P,e,t))}(this,e)),this},m.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this},m.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",(function(){if(p("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(p("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<v.length;i++)e.on(v[i],this.emit.bind(this,v[i]));return this._read=function(t){p("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(m.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),m._fromList=O}).call(this,n(9),n(14))},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function f(e,t,n,r){var o,i,a,s;if(u(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=l(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):y(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function y(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n<u;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return f(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return f(this,e,t,!0)},s.prototype.once=function(e,t){return u(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else m(e,t,!1,s,r,o,i);return c}(this,o,s,e,t,n)),a},b.prototype.cork=function(){this._writableState.corked++},b.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||E(this,e))},b.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,n){c(e,t,n)})):c(this,null,null)}function c(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(16),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,(function(e){t(e),n.emit("close")}))}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return i}));var r=n(7),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.i)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,"__esModule",{value:!0});var s=n(3);n(23);var c=n(2),u=n(83),l=n(32),f=n(35),h=n(75),p=n(77),d=n(17),g=n(78),y=n(19),v=n(79),b=n(80),m=n(4),w=n(5),E=!1,S=!1;function C(e){return r(this,void 0,void 0,(function(){var t,n,i,a,s,c,u,l,f=this;return o(this,(function(h){switch(h.label){case 0:if(S)throw new Error("Blazor has already started.");return S=!0,w.initializeProfiling(null),t=v.resolveOptions(e),n=new p.ConsoleLogger(t.logLevel),window.Blazor.defaultReconnectionHandler=new b.DefaultReconnectionHandler(n),t.reconnectionHandler=t.reconnectionHandler||window.Blazor.defaultReconnectionHandler,n.log(d.LogLevel.Information,"Starting up blazor server-side application."),i=g.discoverComponents(document),a=new g.CircuitDescriptor(i),[4,I(t,n,a)];case 1:return s=h.sent(),[4,a.startCircuit(s)];case 2:return h.sent()?(c=function(e){return r(f,void 0,void 0,(function(){var r,i;return o(this,(function(o){switch(o.label){case 0:return E?[2,!1]:(i=e)?[3,2]:[4,I(t,n,a)];case 1:i=o.sent(),o.label=2;case 2:return r=i,[4,a.reconnect(r)];case 3:return o.sent()?(t.reconnectionHandler.onConnectionUp(),[2,!0]):(n.log(d.LogLevel.Information,"Reconnection attempt to the circuit was rejected by the server. This may indicate that the associated state is no longer available on the server."),[2,!1])}}))}))},u=!1,l=function(){if(!u){var e=new FormData,t=a.circuitId;e.append("circuitId",t),u=navigator.sendBeacon("_blazor/disconnect",e)}},window.addEventListener("beforeunload",l,{capture:!1,once:!0}),window.addEventListener("unload",l,{capture:!1,once:!0}),window.Blazor.reconnect=c,n.log(d.LogLevel.Information,"Blazor server-side application started."),[2]):(n.log(d.LogLevel.Error,"Failed to start the circuit."),[2])}}))}))}function I(e,t,n){return r(this,void 0,void 0,(function(){var r,i,f,p,g;return o(this,(function(o){switch(o.label){case 0:(r=new u.MessagePackHubProtocol).name="blazorpack",i=(new c.HubConnectionBuilder).withUrl("_blazor").withHubProtocol(r),e.configureSignalR(i),f=i.build(),y.setEventDispatcher((function(e,t){f.send("DispatchBrowserEvent",JSON.stringify(e),JSON.stringify(t))})),window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return f.send("OnLocationChanged",e,t)})),f.on("JS.AttachComponent",(function(e,t){return m.attachRootComponentToLogicalElement(0,n.resolveElement(t),e)})),f.on("JS.BeginInvokeJS",s.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet),f.on("JS.EndInvokeDotNet",(function(e){var t;return(t=s.DotNet.jsCallDispatcher).endInvokeDotNetFromJS.apply(t,a(JSON.parse(e)))})),p=h.RenderQueue.getOrCreate(t),f.on("JS.RenderBatch",(function(e,n){t.log(d.LogLevel.Debug,"Received render batch with id "+e+" and "+n.byteLength+" bytes."),p.processBatch(e,n,f)})),f.onclose((function(t){return!E&&e.reconnectionHandler.onConnectionDown(e.reconnectionOptions,t)})),f.on("JS.Error",(function(e){E=!0,_(f,e,t),l.showErrorNotification()})),window.Blazor._internal.forceCloseConnection=function(){return f.stop()},o.label=1;case 1:return o.trys.push([1,3,,4]),[4,f.start()];case 2:return o.sent(),[3,4];case 3:return g=o.sent(),_(f,g,t),[3,4];case 4:return s.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,r,o){f.send("BeginInvokeDotNetFromJS",e?e.toString():null,t,n,r||0,o)},endInvokeJSFromDotNet:function(e,t,n){f.send("EndInvokeJSFromDotNet",e,t,n)}}),[2,f]}}))}))}function _(e,t,n){n.log(d.LogLevel.Error,t),e&&e.stop()}window.Blazor.start=C,f.shouldAutoStart()&&C()},function(e,t,n){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=u(e),a=r[0],s=r[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),l=0,f=s>0?a-4:a;for(n=0;n<f;n+=4)t=o[e.charCodeAt(n)]<<18|o[e.charCodeAt(n+1)]<<12|o[e.charCodeAt(n+2)]<<6|o[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s<c;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<<s)-1,u=c>>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<<u)-1,f=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<<o|s,u+=o;u>0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return u(this,e,t,n)}function u(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=s(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):h(e,t);if("Buffer"===t.type&&i(t.data))return h(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function h(e,t){var n=t.length<0?0:0|p(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(u(e,i)===u(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===c)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+c>s&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;h<c;h++)if(u(e,i+h)!==u(t,h)){f=!1;break}if(f)return i}return-1}function m(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function w(e,t,n,r){return q(F(t,e.length-n),e,n,r)}function E(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function S(e,t,n,r){return E(e,t,n,r)}function C(e,t,n,r){return q(H(t),e,n,r)}function I(e,t,n,r){return q(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,c,u=e[o],l=null,f=u>239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return f(null,e)},c.allocUnsafeSlow=function(e){return f(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},c.byteLength=d,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)y(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)y(this,t,t+3),y(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;f<s;++f)if(u[f]!==l[f]){i=u[f],a=l[f];break}return i<a?-1:a<i?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=U(e[i]);return o}function O(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function R(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var o=t-e;n=new c(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=c.isBuffer(e)?e:F(new c(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var N=/[^+\/0-9A-Za-z-_]/g;function U(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else h(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function c(e){return e[o]||null}function u(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=u(c(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function h(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):h(e,c(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=u(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=u(t).splice(n,1)[0];if(r instanceof Comment){var o=u(r);if(o)for(;o.length>0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new d(e,t)),1!==u.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(11).Buffer)},function(e,t,n){var r=n(61),o=n(36),i=n(15).Buffer;function a(e){if(!(this instanceof a))return new a(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);r.call(this)}o.inherits(a,r),a.prototype._offset=function(e){var t,n=0,r=0;if(0===e)return[0,0];for(;r<this._bufs.length;r++){if(e<(t=n+this._bufs[r].length)||r==this._bufs.length-1)return[r,e-n];n=t}},a.prototype.append=function(e){var t=0;if(i.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof a)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(i.from(e)));return this},a.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},a.prototype._write=function(e,t,n){this._appendBuffer(e),"function"==typeof n&&n()},a.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},a.prototype.end=function(e){r.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},a.prototype.get=function(e){return this.slice(e,e+1)[0]},a.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},a.prototype.copy=function(e,t,n,r){if(("number"!=typeof n||n<0)&&(n=0),("number"!=typeof r||r>this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a<this._bufs.length;a++)this._bufs[a].copy(e,f),f+=this._bufs[a].length;return e}if(l<=this._bufs[c[0]].length-h)return s?this._bufs[c[0]].copy(e,t,h,h+l):this._bufs[c[0]].slice(h,h+l);for(s||(e=i.allocUnsafe(u)),a=c[0];a<this._bufs.length;a++){if(!(l>(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},a.prototype.destroy=function(){this._bufs.length=0,this.length=0,this.push(null)},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};for(var t in e)!function(t){a.prototype[t]=function(n){return this.slice(n,n+e[t])[t](0)}}(t)}(),e.exports=a},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,n)}));case 3:return t.nextTick((function(){e.call(null,n,r)}));case 4:return t.nextTick((function(){e.call(null,n,r,o)}));default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick((function(){e.apply(null,i)}))}}}:e.exports=t}).call(this,n(14))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),c=n(8),u=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),h={submit:!0},p={},d=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){h[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),c.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){u.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var c=i.getClosestDomElement(o).ownerDocument,l=c&&c.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&c&&c.activeElement!==l&&l.focus(),u.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var c,u=0,l=o,f=e.arrayBuilderSegmentReader,h=e.editReader,p=e.frameReader,d=f.values(a),g=f.offset(a),y=g+f.count(a),v=g;v<y;v++){var b=e.diffReader.editsEntry(d,v),m=h.editType(b);switch(m){case r.EditType.prependFrame:var w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);this.insertFrame(e,t,n,l+S,s,E,w);break;case r.EditType.removeFrame:S=h.siblingIndex(b);i.removeLogicalChild(n,l+S);break;case r.EditType.setAttribute:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=h.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);var _=i.getLogicalChild(n,l+S);if(!(_ instanceof Text))throw new Error("Cannot set text content on non-text child");_.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);i.removeLogicalChild(n,l+S),this.insertMarkup(e,n,l+S,E);break;case r.EditType.stepIn:S=h.siblingIndex(b);n=i.getLogicalChild(n,l+S),u++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--u?o:0;break;case r.EditType.permutationListEntry:(c=c||[]).push({fromSiblingIndex:l+h.siblingIndex(b),toSiblingIndex:l+h.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,c),c=void 0;break;default:throw new Error("Unknown edit type: "+m)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,c){var u=e.frameReader,l=u.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,c),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,c+1,c+u.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,u.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,c){var u=e.frameReader,l=u.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),h=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=c+u.subtreeLength(s),d=c+1;d<p;d++){var g=e.referenceFramesEntry(a,d);if(u.frameType(g)!==r.FrameType.attribute){this.insertFrameRange(e,t,h,0,a,d,p);break}this.applyAttribute(e,t,f,g)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&v(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),c=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),u=0;c.firstChild;)i.insertLogicalChild(c.firstChild,a,u++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=y(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=y(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=y(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(v(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,c=i;c<a;c++){var u=e.referenceFramesEntry(o,c);r+=this.insertFrame(e,t,n,r,o,u,c),c+=g(e,u)}return r-s},e}();function g(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function y(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function v(e,t){e.value=t||""}t.BrowserRenderer=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new c(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,c=null,u=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var h=f.getHandler(e.type);if(h&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){c||(c=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(h.renderingComponentId,e);this.onEvent(e,h.eventHandlerId,c,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=u||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new u:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var c=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),u=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var c=63&e[t++],u=(7&i)<<18|a<<12|s<<6|c;u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n<i;c=r[++n])g(c)||!w(c)?a+=" "+c:a+=" "+s(c);return a},t.deprecate=function(n,r){if(void 0!==e&&!0===e.noDeprecation)return n;if(void 0===e)return function(){return t.deprecate(n,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),o=!0}return n.apply(this,arguments)}};var i,a={};function s(e,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a<s;++a)P(t,String(a))?i.push(h(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(h(e,t,n,r,o,!0))})),i}(e,n,r,s,a):a.map((function(t){return h(e,n,r,s,t,I)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),x&&Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=x,t.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then((function(t){e.nextTick(a,null,t)}),(function(t){e.nextTick(O,t,a)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.defineProperties(n,r(t)),n}}).call(this,n(14))},function(e,t,n){"use strict";(function(t,r){var o=n(22);e.exports=m;var i,a=n(62);m.ReadableState=b;n(38).EventEmitter;var s=function(e,t){return e.listeners(t).length},c=n(39),u=n(15).Buffer,l=t.Uint8Array||function(){};var f=n(20);f.inherits=n(16);var h=n(63),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var d,g=n(64),y=n(40);f.inherits(m,c);var v=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(10));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(41).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function m(e){if(i=i||n(10),!(this instanceof m))return new m(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,C(e)}(e,a)):(o||(i=function(e,t){var n;r=t,u.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function E(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&C(e)),_(e,t)}Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),m.prototype.destroy=y.destroy,m.prototype._undestroy=y.undestroy,m.prototype._destroy=function(e,t){this.push(null),t(e)},m.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=u.from(e,t),t=""),n=!0),w(this,e,t,!1,n)},m.prototype.unshift=function(e){return w(this,e,null,!0,!1)},m.prototype.isPaused=function(){return!1===this._readableState.flowing},m.prototype.setEncoding=function(e){return d||(d=n(41).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};function S(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(p("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function T(e){p("readable nexttick read 0"),e.read(0)}function P(e,t){t.reading||(p("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(p("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}m.prototype.read=function(e){p("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&p("length less than watermark",o=!0),t.ended||t.reading?p("reading or ended",o=!1):o&&(p("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=S(n,t))),null===(r=e>0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=D(t.pipes,e);return-1===a||(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},m.prototype.on=function(e,t){var n=c.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&C(this):o.nextTick(T,this))}return n},m.prototype.addListener=m.prototype.on,m.prototype.resume=function(){var e=this._readableState;return e.flowing||(p("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(P,e,t))}(this,e)),this},m.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this},m.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",(function(){if(p("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(p("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<v.length;i++)e.on(v[i],this.emit.bind(this,v[i]));return this._read=function(t){p("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(m.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),m._fromList=O}).call(this,n(9),n(14))},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function f(e,t,n,r){var o,i,a,s;if(u(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=l(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):y(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function y(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n<u;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return f(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return f(this,e,t,!0)},s.prototype.once=function(e,t){return u(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else m(e,t,!1,s,r,o,i);return c}(this,o,s,e,t,n)),a},b.prototype.cork=function(){this._writableState.corked++},b.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||E(this,e))},b.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,n){c(e,t,n)})):c(this,null,null)}function c(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(16),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,(function(e){t(e),n.emit("close")}))}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return i}));var r=n(7),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.i)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,"__esModule",{value:!0});var s=n(3);n(23);var c=n(2),u=n(83),l=n(32),f=n(35),h=n(75),p=n(77),d=n(17),g=n(78),y=n(19),v=n(79),b=n(80),m=n(4),w=n(5),E=!1,S=!1;function C(e){return r(this,void 0,void 0,(function(){var t,n,i,a,s,c,u,l,f=this;return o(this,(function(h){switch(h.label){case 0:if(S)throw new Error("Blazor has already started.");return S=!0,w.initializeProfiling(null),t=v.resolveOptions(e),n=new p.ConsoleLogger(t.logLevel),window.Blazor.defaultReconnectionHandler=new b.DefaultReconnectionHandler(n),t.reconnectionHandler=t.reconnectionHandler||window.Blazor.defaultReconnectionHandler,n.log(d.LogLevel.Information,"Starting up blazor server-side application."),i=g.discoverComponents(document),a=new g.CircuitDescriptor(i),[4,I(t,n,a)];case 1:return s=h.sent(),[4,a.startCircuit(s)];case 2:return h.sent()?(c=function(e){return r(f,void 0,void 0,(function(){var r,i;return o(this,(function(o){switch(o.label){case 0:return E?[2,!1]:(i=e)?[3,2]:[4,I(t,n,a)];case 1:i=o.sent(),o.label=2;case 2:return r=i,[4,a.reconnect(r)];case 3:return o.sent()?(t.reconnectionHandler.onConnectionUp(),[2,!0]):(n.log(d.LogLevel.Information,"Reconnection attempt to the circuit was rejected by the server. This may indicate that the associated state is no longer available on the server."),[2,!1])}}))}))},u=!1,l=function(){if(!u){var e=new FormData,t=a.circuitId;e.append("circuitId",t),u=navigator.sendBeacon("_blazor/disconnect",e)}},window.addEventListener("beforeunload",l,{capture:!1,once:!0}),window.addEventListener("unload",l,{capture:!1,once:!0}),window.Blazor.reconnect=c,n.log(d.LogLevel.Information,"Blazor server-side application started."),[2]):(n.log(d.LogLevel.Error,"Failed to start the circuit."),[2])}}))}))}function I(e,t,n){return r(this,void 0,void 0,(function(){var r,i,f,p,g;return o(this,(function(o){switch(o.label){case 0:(r=new u.MessagePackHubProtocol).name="blazorpack",i=(new c.HubConnectionBuilder).withUrl("_blazor").withHubProtocol(r),e.configureSignalR(i),f=i.build(),y.setEventDispatcher((function(e,t){f.send("DispatchBrowserEvent",JSON.stringify(e),JSON.stringify(t))})),window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return f.send("OnLocationChanged",e,t)})),f.on("JS.AttachComponent",(function(e,t){return m.attachRootComponentToLogicalElement(0,n.resolveElement(t),e)})),f.on("JS.BeginInvokeJS",s.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet),f.on("JS.EndInvokeDotNet",(function(e){var t;return(t=s.DotNet.jsCallDispatcher).endInvokeDotNetFromJS.apply(t,a(JSON.parse(e)))})),p=h.RenderQueue.getOrCreate(t),f.on("JS.RenderBatch",(function(e,n){t.log(d.LogLevel.Debug,"Received render batch with id "+e+" and "+n.byteLength+" bytes."),p.processBatch(e,n,f)})),f.onclose((function(t){return!E&&e.reconnectionHandler.onConnectionDown(e.reconnectionOptions,t)})),f.on("JS.Error",(function(e){E=!0,_(f,e,t),l.showErrorNotification()})),window.Blazor._internal.forceCloseConnection=function(){return f.stop()},o.label=1;case 1:return o.trys.push([1,3,,4]),[4,f.start()];case 2:return o.sent(),[3,4];case 3:return g=o.sent(),_(f,g,t),[3,4];case 4:return s.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,r,o){f.send("BeginInvokeDotNetFromJS",e?e.toString():null,t,n,r||0,o)},endInvokeJSFromDotNet:function(e,t,n){f.send("EndInvokeJSFromDotNet",e,t,n)}}),[2,f]}}))}))}function _(e,t,n){n.log(d.LogLevel.Error,t),e&&e.stop()}window.Blazor.start=C,f.shouldAutoStart()&&C()},function(e,t,n){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=u(e),a=r[0],s=r[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),l=0,f=s>0?a-4:a;for(n=0;n<f;n+=4)t=o[e.charCodeAt(n)]<<18|o[e.charCodeAt(n+1)]<<12|o[e.charCodeAt(n+2)]<<6|o[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s<c;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<<s)-1,u=c>>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<<u)-1,f=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<<o|s,u+=o;u>0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index e177aa1b2448..ae1a7a2138a3 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return s(e,t,null,n)},e.invokeMethodAsync=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return u(e,t,null,n)},e.jsCallDispatcher={findJSFunction:p,invokeJSFromDotNet:function(e,t){var n=p(e).apply(null,f(t));return null==n?null:JSON.stringify(n,m)},beginInvokeJSFromDotNet:function(e,t,n){var r=new Promise((function(e){e(p(t).apply(null,f(n)))}));e&&r.then((function(t){return c().endInvokeJSFromDotNet(e,!0,JSON.stringify([e,!0,t],m))}),(function(t){return c().endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,d(t)]))}))},endInvokeDotNetFromJS:function(e,t,n){var r=t?n:new Error(n);l(parseInt(e),t,r)}};var h=function(){function e(e){this._id=e}return e.prototype.invokeMethod=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return s(null,e,this._id,t)},e.prototype.invokeMethodAsync=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return u(null,e,this._id,t)},e.prototype.dispose=function(){u(null,"__Dispose",this._id,null).catch((function(e){return console.error(e)}))},e.prototype.serializeAsArg=function(){return{__dotNetObject:this._id}},e}();function m(e,t){return t instanceof h?t.serializeAsArg():t}a((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__dotNetObject")?new h(t.__dotNetObject):t}))}(t.DotNet||(t.DotNet={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(24),n(18);var r=n(25),o=n(13),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d<u;d++){var p=t.updatedComponentsEntry(s,d),h=f.componentId(p),m=f.edits(p);n.updateComponent(t,h,m,l)}var v=t.disposedComponentIds(),y=r.values(v),b=r.count(v);for(d=0;d<b;d++){h=t.disposedComponentIdsEntry(y,d);n.disposeComponent(h)}var g=t.disposedEventHandlerIds(),w=r.values(g),E=r.count(g);for(d=0;d<E;d++){var _=t.disposedEventHandlerIdsEntry(w,d);n.disposeEventHandler(_)}a&&(a=!1,window.scrollTo&&window.scrollTo(0,0))},t.resetScrollAfterNextBatch=function(){a=!0}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var o=0,i=!!localStorage.blazorProfilingEnabled,a=[],s=[];function u(e){if(o){var t=performance.now();s.push(e),a.push({name:e,type:"start",timestamp:t})}}function c(e){if(o){var t=performance.now(),n=s.pop();if(!n)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the stack was empty.");if(n!==e)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the top stack item was '"+f(n)+"'.");a.push({name:e,type:"end",timestamp:t})}}function l(e){var t=document.createElement("div");t.textContent=e,t.setAttribute("style","position: absolute; z-index: 99999; font-family: 'Sans Serif'; top: 0; left: 0; padding: 4px; font-size: 12px; background-color: purple; color: white;"),document.body.appendChild(t),setTimeout((function(){return document.body.removeChild(t)}),3e3)}function f(e){return"string"==typeof e?e:BINDING.conv_string(e)}t.setProfilingEnabled=function(e){localStorage.blazorProfilingEnabled=!1!==e,location.reload()},t.initializeProfiling=function(e){if(i){r=e||function(){};var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";console.info("Profiling hotkey: Shift+"+t+"+P (when application has focus)"),document.addEventListener("keydown",(function(e){var t,n,i,u;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyP"===e.code&&(o?(l("Finished capturing performance profile"),t=a.map((function(e){return{name:f(e.name),cat:"PERF",ph:"start"===e.type?"B":"E",ts:1e3*(e.timestamp-o),pid:0,tid:0}})),n=JSON.stringify(t),i=(new TextEncoder).encode(n),(u=document.createElement("a")).href=URL.createObjectURL(new Blob([i])),u.setAttribute("download","trace.json"),u.click(),URL.revokeObjectURL(u.href),s.length=0,a.length=0,o=0,r(!1)):(l("Started capturing performance profile..."),r(!0),o=performance.now()))}))}},t.profileStart=u,t.profileEnd=c,window._blazorProfileStart=u,window._blazorProfileEnd=c},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),n(3);var i,a=n(4),s=!1,u=!1,c=null;function l(e,t,n){void 0===n&&(n=!1);var r=p(e);if(!t&&h(r))f(r,!1,n);else if(t&&location.href===e){var o=e+"?";history.replaceState(null,"",o),location.replace(e)}else n?history.replaceState(null,"",r):location.href=e}function f(e,t,n){void 0===n&&(n=!1),a.resetScrollAfterNextBatch(),n?history.replaceState(null,"",e):history.pushState(null,"",e),d(t)}function d(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return c?[4,c(location.href,e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))}function p(e){return(i=i||document.createElement("a")).href=e,i.href}function h(e){var t,n=(t=document.baseURI).substr(0,t.lastIndexOf("/")+1);return e.startsWith(n)}t.internalFunctions={listenForNavigationEvents:function(e){if(c=e,u)return;u=!0,window.addEventListener("popstate",(function(){return d(!1)}))},enableNavigationInterception:function(){s=!0},navigateTo:l,getBaseURI:function(){return document.baseURI},getLocationHref:function(){return location.href}},t.attachToEventDelegator=function(e){e.notifyAfterClick((function(e){if(s&&0===e.button&&!function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e)&&!e.defaultPrevented){var t=function e(t,n){return t?t.tagName===n?t:e(t.parentElement,n):null}(e.target,"A");if(t&&t.hasAttribute("href")){var n=t.getAttribute("target");if(!(!n||"_self"===n))return;var r=p(t.getAttribute("href"));h(r)&&(e.preventDefault(),f(r,!0))}}}))},t.navigateTo=l,t.toAbsoluteUri=p},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else d(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function u(e){return e[o]||null}function c(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=c(u(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function d(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):d(e,u(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=c(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=c(t).splice(n,1)[0];if(r instanceof Comment)for(var o=c(r);o.length>0;)e(r,0);var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y<v;y++){var b=e.diffReader.editsEntry(h,y),g=d.editType(b);switch(g){case r.EditType.prependFrame:var w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);this.insertFrame(e,t,n,l+_,s,E,w);break;case r.EditType.removeFrame:_=d.siblingIndex(b);i.removeLogicalChild(n,l+_);break;case r.EditType.setAttribute:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+_))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;_=d.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+_))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=d.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);var A=i.getLogicalChild(n,l+_);if(!(A instanceof Text))throw new Error("Cannot set text content on non-text child");A.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);i.removeLogicalChild(n,l+_),this.insertMarkup(e,n,l+_,E);break;case r.EditType.stepIn:_=d.siblingIndex(b);n=i.getLogicalChild(n,l+_),c++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--c?o:0;break;case r.EditType.permutationListEntry:(u=u||[]).push({fromSiblingIndex:l+d.siblingIndex(b),toSiblingIndex:l+d.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,u),u=void 0;break;default:throw new Error("Unknown edit type: "+g)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,u){var c=e.frameReader,l=c.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,u),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,u+1,u+c.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,c.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,u){var c=e.frameReader,l=c.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),d=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=u+c.subtreeLength(s),h=u+1;h<p;h++){var m=e.referenceFramesEntry(a,h);if(c.frameType(m)!==r.FrameType.attribute){this.insertFrameRange(e,t,d,0,a,h,p);break}this.applyAttribute(e,t,f,m)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&y(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),u=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),c=0;u.firstChild;)i.insertLogicalChild(u.firstChild,a,c++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=v(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=v(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=v(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(y(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,u=i;u<a;u++){var c=e.referenceFramesEntry(o,u);r+=this.insertFrame(e,t,n,r,o,c,u),u+=m(e,c)}return r-s},e}();function m(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function v(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function y(e,t){e.value=t||""}t.BrowserRenderer=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new u(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,u=null,c=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var d=f.getHandler(e.type);if(d&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){u||(u=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(d.renderingComponentId,e);this.onEvent(e,d.eventHandlerId,u,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=c||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new c:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var u=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),c=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var u=63&e[t++],c=(7&i)<<18|a<<12|s<<6|u;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),c=n(4),l=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i,a=n(3),s=n(47),u=n(32),c=n(48),l=n(5),f=Math.pow(2,32),d=Math.pow(2,21)-1,p=null;function h(e){return Module.HEAP32[e>>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n<e.length;n++)BINDING.mono_obj_array_set(t,n,BINDING.js_typed_array_to_array(new Uint8Array(e[n])));return t}),e.length})))}return BINDING.js_to_mono_obj(Promise.resolve(0))},window.Blazor._internal.getLazyAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.lazyAssembly;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResource(t,"_framework/"+t,i[t],"assembly")})).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readLazyAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n<e.length;n++)BINDING.mono_obj_array_set(t,n,BINDING.js_typed_array_to_array(new Uint8Array(e[n])));return t}),e.length})))}return BINDING.js_to_mono_obj(Promise.resolve(0))}})),d.postRun.push((function(){var n,r,o;e.bootConfig.debugBuild&&e.bootConfig.cacheBootResources&&e.logToConsole(),e.purgeUnusedCacheEntriesAsync(),MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE","true"),cwrap("mono_wasm_load_runtime",null,["string","number"])("appBinDir",s.hasDebuggingEnabled()?-1:0),MONO.mono_wasm_runtime_ready(),n=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","InvokeDotNet"),r=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","BeginInvokeDotNet"),o=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","EndInvokeJS"),a.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,o,i){if(g(),!o&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");var a=o?o.toString():t;r(e?e.toString():null,a,n,i)},endInvokeJSFromDotNet:function(e,t,n){o(n)},invokeDotNetFromJS:function(e,t,r,o){return g(),n(e||null,t,r?r.toString():null,o)}}),t()})),d;function _(e,t){return r(this,void 0,void 0,(function(){var r,a,s,u,c;return o(this,(function(o){switch(o.label){case 0:r="blazor:"+e.name,addRunDependency(r),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.response.then((function(e){return e.arrayBuffer()}))];case 2:return a=o.sent(),s=new Uint8Array(a),u=Module._malloc(s.length),new Uint8Array(Module.HEAPU8.buffer,u,s.length).set(s),i(t,u,s.length),MONO.loaded_files.push((l=e.url,m.href=l,m.href)),[3,4];case 3:return c=o.sent(),n(c),[2];case 4:return removeRunDependency(r),[2]}var l}))}))}}(e,t,n),function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");var t=Object.keys(e.bootConfig.resources.runtime).filter((function(e){return e.startsWith("dotnet.")&&e.endsWith(".js")}))[0],n=e.bootConfig.resources.runtime[t],r=document.createElement("script");if(r.src="_framework/"+t,r.defer=!0,e.bootConfig.cacheBootResources&&(r.integrity=n,r.crossOrigin="anonymous"),e.startOptions.loadBootResource){var o=e.startOptions.loadBootResource("dotnetjs",t,r.src,n);if("string"==typeof o)r.src=o;else if(o)throw new Error("For a dotnetjs resource, custom loaders must supply a URI string.")}document.body.appendChild(r)}(e)},d=document.createElement("script"),window.__wasmmodulecallback__=f,d.type="text/javascript",d.text="var Module; window.__wasmmodulecallback__(); delete window.__wasmmodulecallback__;",document.body.appendChild(d)}))},callEntryPoint:function(e){y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Hosting.EntrypointInvoker","InvokeEntrypoint")(e,null)},toUint8Array:function(e){var t=v(e),n=h(t);return new Uint8Array(Module.HEAPU8.buffer,t+4,n)},getArrayLength:function(e){return h(v(e))},getArrayEntryPtr:function(e,t,n){return v(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),Module.HEAP16[n>>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(8),a=function(){function e(e,t,n){this.bootConfig=e,this.cacheIfUsed=t,this.startOptions=n,this.usedCacheKeys={},this.networkLoads={},this.cacheLoads={}}return e.initAsync=function(t,n){return r(this,void 0,void 0,(function(){var r;return o(this,(function(o){switch(o.label){case 0:return[4,s(t)];case 1:return r=o.sent(),[2,new e(t,r,n)]}}))}))},e.prototype.loadResources=function(e,t,n){var r=this;return Object.keys(e).map((function(o){return r.loadResource(o,t(o),e[o],n)}))},e.prototype.loadResource=function(e,t,n,r){return{name:e,url:t,response:this.cacheIfUsed?this.loadResourceWithCaching(this.cacheIfUsed,e,t,n,r):this.loadResourceWithoutCaching(e,t,n,r)}},e.prototype.logToConsole=function(){var e=Object.values(this.cacheLoads),t=Object.values(this.networkLoads),n=u(e),r=u(t),o=n+r;if(0!==o){var i=this.bootConfig.linkerEnabled?"%c":"\n%cThis application was built with linking (tree shaking) disabled. Published applications will be significantly smaller.";console.groupCollapsed("%cblazor%c Loaded "+c(o)+" resources"+i,"background: purple; color: white; padding: 1px 3px; border-radius: 3px;","font-weight: bold;","font-weight: normal;"),e.length&&(console.groupCollapsed("Loaded "+c(n)+" resources from cache"),console.table(this.cacheLoads),console.groupEnd()),t.length&&(console.groupCollapsed("Loaded "+c(r)+" resources from network"),console.table(this.networkLoads),console.groupEnd()),console.groupEnd()}},e.prototype.purgeUnusedCacheEntriesAsync=function(){return r(this,void 0,void 0,(function(){var e,t,n,i=this;return o(this,(function(a){switch(a.label){case 0:return(e=this.cacheIfUsed)?[4,e.keys()]:[3,3];case 1:return t=a.sent(),n=t.map((function(t){return r(i,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return t.url in this.usedCacheKeys?[3,2]:[4,e.delete(t)];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))})),[4,Promise.all(n)];case 2:a.sent(),a.label=3;case 3:return[2]}}))}))},e.prototype.loadResourceWithCaching=function(e,t,n,a,s){return r(this,void 0,void 0,(function(){var r,u,c,l;return o(this,(function(o){switch(o.label){case 0:if(!a||0===a.length)throw new Error("Content hash is required");r=i.toAbsoluteUri(n+"."+a),this.usedCacheKeys[r]=!0,o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.match(r)];case 2:return u=o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return u?(c=parseInt(u.headers.get("content-length")||"0"),this.cacheLoads[t]={responseBytes:c},[2,u]):[3,5];case 5:return[4,this.loadResourceWithoutCaching(t,n,a,s)];case 6:return l=o.sent(),this.addToCacheAsync(e,t,r,l),[2,l]}}))}))},e.prototype.loadResourceWithoutCaching=function(e,t,n,r){if(this.startOptions.loadBootResource){var o=this.startOptions.loadBootResource(r,e,t,n);if(o instanceof Promise)return o;"string"==typeof o&&(t=o)}return fetch(t,{cache:"no-cache",integrity:this.bootConfig.cacheBootResources?n:void 0})},e.prototype.addToCacheAsync=function(e,t,n,i){return r(this,void 0,void 0,(function(){var r,a,s,u;return o(this,(function(o){switch(o.label){case 0:return[4,i.clone().arrayBuffer()];case 1:r=o.sent(),a=function(e){if("undefined"!=typeof performance)return performance.getEntriesByName(e)[0]}(i.url),s=a&&a.encodedBodySize||void 0,this.networkLoads[t]={responseBytes:s},u=new Response(r,{headers:{"content-type":i.headers.get("content-type")||"","content-length":(s||i.headers.get("content-length")||"").toString()}}),o.label=2;case 2:return o.trys.push([2,4,,5]),[4,e.put(n,u)];case 3:return o.sent(),[3,5];case 4:return o.sent(),[3,5];case 5:return[2]}}))}))},e}();function s(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:if(!e.cacheBootResources||"undefined"==typeof caches)return[2,null];t=document.baseURI.substring(document.location.origin.length),n="blazor-resources-"+t,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,caches.open(n)];case 2:return[2,r.sent()||null];case 3:return r.sent(),[2,null];case 4:return[2]}}))}))}function u(e){return e.reduce((function(e,t){return e+(t.responseBytes||0)}),0)}function c(e){return(e/1048576).toFixed(2)+" MB"}t.WebAssemblyResourceLoader=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){}return e.initAsync=function(e){return r(this,void 0,void 0,(function(){function t(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return[4,fetch(e,{method:"GET",credentials:"include",cache:"no-cache"})];case 1:return t=r.sent(),n=Uint8Array.bind,[4,t.arrayBuffer()];case 2:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))]}}))}))}var n,i=this;return o(this,(function(a){switch(a.label){case 0:return window.Blazor._internal.getApplicationEnvironment=function(){return BINDING.js_string_to_mono_string(e.applicationEnvironment)},[4,Promise.all((e.bootConfig.config||[]).filter((function(t){return"appsettings.json"===t||t==="appsettings."+e.applicationEnvironment+".json"})).map((function(e){return r(i,void 0,void 0,(function(){var n;return o(this,(function(r){switch(r.label){case 0:return n={name:e},[4,t(e)];case 1:return[2,(n.content=r.sent(),n)]}}))}))})))];case 1:return n=a.sent(),window.Blazor._internal.getConfig=function(e){var t=BINDING.conv_string(e),r=n.find((function(e){return e.name===t}));return r?BINDING.js_typed_array_to_array(r.content):void 0},[2]}}))}))},e}();t.WebAssemblyConfigLoader=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this.bootConfig=e,this.applicationEnvironment=t}return e.initAsync=function(){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return[4,fetch("_framework/blazor.boot.json",{method:"GET",credentials:"include",cache:"no-cache"})];case 1:return t=r.sent(),n=t.headers.get("Blazor-Environment")||"Production",[4,t.json()];case 2:return[2,new e(r.sent(),n)]}}))}))},e}();t.BootConfigResult=i}]); \ No newline at end of file +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=c();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,m),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function u(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var u=JSON.stringify(i,m);c().beginInvokeDotNetFromJS(a,e,t,r,u)}catch(e){l(a,!1,e)}return s}function c(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function d(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return s(e,t,null,n)},e.invokeMethodAsync=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return u(e,t,null,n)},e.jsCallDispatcher={findJSFunction:p,invokeJSFromDotNet:function(e,t){var n=p(e).apply(null,f(t));return null==n?null:JSON.stringify(n,m)},beginInvokeJSFromDotNet:function(e,t,n){var r=new Promise((function(e){e(p(t).apply(null,f(n)))}));e&&r.then((function(t){return c().endInvokeJSFromDotNet(e,!0,JSON.stringify([e,!0,t],m))}),(function(t){return c().endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,d(t)]))}))},endInvokeDotNetFromJS:function(e,t,n){var r=t?n:new Error(n);l(parseInt(e),t,r)}};var h=function(){function e(e){this._id=e}return e.prototype.invokeMethod=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return s(null,e,this._id,t)},e.prototype.invokeMethodAsync=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return u(null,e,this._id,t)},e.prototype.dispose=function(){u(null,"__Dispose",this._id,null).catch((function(e){return console.error(e)}))},e.prototype.serializeAsArg=function(){return{__dotNetObject:this._id}},e}();function m(e,t){return t instanceof h?t.serializeAsArg():t}a((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__dotNetObject")?new h(t.__dotNetObject):t}))}(t.DotNet||(t.DotNet={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(24),n(18);var r=n(25),o=n(13),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d<u;d++){var p=t.updatedComponentsEntry(s,d),h=f.componentId(p),m=f.edits(p);n.updateComponent(t,h,m,l)}var v=t.disposedComponentIds(),y=r.values(v),b=r.count(v);for(d=0;d<b;d++){h=t.disposedComponentIdsEntry(y,d);n.disposeComponent(h)}var g=t.disposedEventHandlerIds(),w=r.values(g),E=r.count(g);for(d=0;d<E;d++){var _=t.disposedEventHandlerIdsEntry(w,d);n.disposeEventHandler(_)}a&&(a=!1,window.scrollTo&&window.scrollTo(0,0))},t.resetScrollAfterNextBatch=function(){a=!0}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var o=0,i=!!localStorage.blazorProfilingEnabled,a=[],s=[];function u(e){if(o){var t=performance.now();s.push(e),a.push({name:e,type:"start",timestamp:t})}}function c(e){if(o){var t=performance.now(),n=s.pop();if(!n)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the stack was empty.");if(n!==e)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the top stack item was '"+f(n)+"'.");a.push({name:e,type:"end",timestamp:t})}}function l(e){var t=document.createElement("div");t.textContent=e,t.setAttribute("style","position: absolute; z-index: 99999; font-family: 'Sans Serif'; top: 0; left: 0; padding: 4px; font-size: 12px; background-color: purple; color: white;"),document.body.appendChild(t),setTimeout((function(){return document.body.removeChild(t)}),3e3)}function f(e){return"string"==typeof e?e:BINDING.conv_string(e)}t.setProfilingEnabled=function(e){localStorage.blazorProfilingEnabled=!1!==e,location.reload()},t.initializeProfiling=function(e){if(i){r=e||function(){};var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";console.info("Profiling hotkey: Shift+"+t+"+P (when application has focus)"),document.addEventListener("keydown",(function(e){var t,n,i,u;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyP"===e.code&&(o?(l("Finished capturing performance profile"),t=a.map((function(e){return{name:f(e.name),cat:"PERF",ph:"start"===e.type?"B":"E",ts:1e3*(e.timestamp-o),pid:0,tid:0}})),n=JSON.stringify(t),i=(new TextEncoder).encode(n),(u=document.createElement("a")).href=URL.createObjectURL(new Blob([i])),u.setAttribute("download","trace.json"),u.click(),URL.revokeObjectURL(u.href),s.length=0,a.length=0,o=0,r(!1)):(l("Started capturing performance profile..."),r(!0),o=performance.now()))}))}},t.profileStart=u,t.profileEnd=c,window._blazorProfileStart=u,window._blazorProfileEnd=c},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),n(3);var i,a=n(4),s=!1,u=!1,c=null;function l(e,t,n){void 0===n&&(n=!1);var r=p(e);if(!t&&h(r))f(r,!1,n);else if(t&&location.href===e){var o=e+"?";history.replaceState(null,"",o),location.replace(e)}else n?history.replaceState(null,"",r):location.href=e}function f(e,t,n){void 0===n&&(n=!1),a.resetScrollAfterNextBatch(),n?history.replaceState(null,"",e):history.pushState(null,"",e),d(t)}function d(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return c?[4,c(location.href,e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))}function p(e){return(i=i||document.createElement("a")).href=e,i.href}function h(e){var t,n=(t=document.baseURI).substr(0,t.lastIndexOf("/")+1);return e.startsWith(n)}t.internalFunctions={listenForNavigationEvents:function(e){if(c=e,u)return;u=!0,window.addEventListener("popstate",(function(){return d(!1)}))},enableNavigationInterception:function(){s=!0},navigateTo:l,getBaseURI:function(){return document.baseURI},getLocationHref:function(){return location.href}},t.attachToEventDelegator=function(e){e.notifyAfterClick((function(e){if(s&&0===e.button&&!function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e)&&!e.defaultPrevented){var t=function e(t,n){return t?t.tagName===n?t:e(t.parentElement,n):null}(e.target,"A");if(t&&t.hasAttribute("href")){var n=t.getAttribute("target");if(!(!n||"_self"===n))return;var r=p(t.getAttribute("href"));h(r)&&(e.preventDefault(),f(r,!0))}}}))},t.navigateTo=l,t.toAbsoluteUri=p},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else d(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function u(e){return e[o]||null}function c(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=c(u(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function d(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):d(e,u(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=c(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=c(t).splice(n,1)[0];if(r instanceof Comment){var o=c(r);if(o)for(;o.length>0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),u=n(8),c=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),d={submit:!0},p={},h=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){d[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),u.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){c.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var u=i.getClosestDomElement(o).ownerDocument,l=u&&u.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&u&&u.activeElement!==l&&l.focus(),c.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var u,c=0,l=o,f=e.arrayBuilderSegmentReader,d=e.editReader,p=e.frameReader,h=f.values(a),m=f.offset(a),v=m+f.count(a),y=m;y<v;y++){var b=e.diffReader.editsEntry(h,y),g=d.editType(b);switch(g){case r.EditType.prependFrame:var w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);this.insertFrame(e,t,n,l+_,s,E,w);break;case r.EditType.removeFrame:_=d.siblingIndex(b);i.removeLogicalChild(n,l+_);break;case r.EditType.setAttribute:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+_))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;_=d.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+_))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=d.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);var A=i.getLogicalChild(n,l+_);if(!(A instanceof Text))throw new Error("Cannot set text content on non-text child");A.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=d.newTreeIndex(b),E=e.referenceFramesEntry(s,w),_=d.siblingIndex(b);i.removeLogicalChild(n,l+_),this.insertMarkup(e,n,l+_,E);break;case r.EditType.stepIn:_=d.siblingIndex(b);n=i.getLogicalChild(n,l+_),c++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--c?o:0;break;case r.EditType.permutationListEntry:(u=u||[]).push({fromSiblingIndex:l+d.siblingIndex(b),toSiblingIndex:l+d.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,u),u=void 0;break;default:throw new Error("Unknown edit type: "+g)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,u){var c=e.frameReader,l=c.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,u),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,u+1,u+c.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,c.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,u){var c=e.frameReader,l=c.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),d=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=u+c.subtreeLength(s),h=u+1;h<p;h++){var m=e.referenceFramesEntry(a,h);if(c.frameType(m)!==r.FrameType.attribute){this.insertFrameRange(e,t,d,0,a,h,p);break}this.applyAttribute(e,t,f,m)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&y(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),u=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),c=0;u.firstChild;)i.insertLogicalChild(u.firstChild,a,c++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=v(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=v(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=v(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(y(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,u=i;u<a;u++){var c=e.referenceFramesEntry(o,u);r+=this.insertFrame(e,t,n,r,o,c,u),u+=m(e,c)}return r-s},e}();function m(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function v(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function y(e,t){e.value=t||""}t.BrowserRenderer=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new u(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,u=null,c=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var d=f.getHandler(e.type);if(d&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){u||(u=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(d.renderingComponentId,e);this.onEvent(e,d.eventHandlerId,u,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=c||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new c:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var u=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),c=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var u=63&e[t++],c=(7&i)<<18|a<<12|s<<6|u;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(23);var s=n(18),u=n(46),c=n(4),l=n(49),f=n(35),d=n(19),p=n(50),h=n(51),m=n(52),v=n(5),y=!1;function b(e){return r(this,void 0,void 0,(function(){var t,n,f,b,g,w,E,_=this;return o(this,(function(C){switch(C.label){case 0:if(y)throw new Error("Blazor has already started.");return y=!0,d.setEventDispatcher((function(e,t){u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){v.profileStart("renderBatch");var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}v.profileEnd("renderBatch")},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(_,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),[4,m.BootConfigResult.initAsync()];case 1:return b=C.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(b.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(b)])];case 2:g=i.apply(void 0,[C.sent(),1]),w=g[0],C.label=3;case 3:return C.trys.push([3,5,,6]),[4,t.start(w)];case 4:return C.sent(),[3,6];case 5:throw E=C.sent(),new Error("Failed to start platform. Reason: "+E);case 6:return t.callEntryPoint(w.bootConfig.entryAssembly),[2]}}))}))}window.Blazor.start=b,f.shouldAutoStart()&&b().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i,a=n(3),s=n(47),u=n(32),c=n(48),l=n(5),f=Math.pow(2,32),d=Math.pow(2,21)-1,p=null;function h(e){return Module.HEAP32[e>>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var f,d;s.attachDebuggerHotkey(e),l.initializeProfiling((function(e){y("Microsoft.AspNetCore.Components","Microsoft.AspNetCore.Components.Profiling.WebAssemblyComponentsProfiling","SetCapturing")(e)})),window.Browser={init:function(){}},f=function(){window.Module=function(e,t,n){var l=this,f=e.bootConfig.resources,d=window.Module||{},p=["DEBUGGING ENABLED"];d.print=function(e){return p.indexOf(e)<0&&console.log(e)},d.printErr=function(e){console.error(e),u.showErrorNotification()},d.preRun=d.preRun||[],d.postRun=d.postRun||[],d.preloadPlugins=[];var h,v=e.loadResources(f.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(f.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.dat")&&(h=e.loadResource("dotnet.timezones.dat","_framework/dotnet.timezones.dat",e.bootConfig.resources.runtime["dotnet.timezones.dat"],"timezonedata")),d.instantiateWasm=function(e,t){return r(l,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,b(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),d.printErr(r),r;case 4:return t(n),[2]}}))})),[]},d.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),c.loadTimezoneData(n),removeRunDependency(t),[2]}}))}))}(h),v.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){d.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n<e.length;n++)BINDING.mono_obj_array_set(t,n,BINDING.js_typed_array_to_array(new Uint8Array(e[n])));return t}),e.length})))}return BINDING.js_to_mono_obj(Promise.resolve(0))},window.Blazor._internal.getLazyAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.lazyAssembly;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResource(t,"_framework/"+t,i[t],"assembly")})).map((function(e){return r(l,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readLazyAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n<e.length;n++)BINDING.mono_obj_array_set(t,n,BINDING.js_typed_array_to_array(new Uint8Array(e[n])));return t}),e.length})))}return BINDING.js_to_mono_obj(Promise.resolve(0))}})),d.postRun.push((function(){var n,r,o;e.bootConfig.debugBuild&&e.bootConfig.cacheBootResources&&e.logToConsole(),e.purgeUnusedCacheEntriesAsync(),MONO.mono_wasm_setenv("MONO_URI_DOTNETRELATIVEORABSOLUTE","true"),cwrap("mono_wasm_load_runtime",null,["string","number"])("appBinDir",s.hasDebuggingEnabled()?-1:0),MONO.mono_wasm_runtime_ready(),n=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","InvokeDotNet"),r=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","BeginInvokeDotNet"),o=y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime","EndInvokeJS"),a.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,o,i){if(g(),!o&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");var a=o?o.toString():t;r(e?e.toString():null,a,n,i)},endInvokeJSFromDotNet:function(e,t,n){o(n)},invokeDotNetFromJS:function(e,t,r,o){return g(),n(e||null,t,r?r.toString():null,o)}}),t()})),d;function _(e,t){return r(this,void 0,void 0,(function(){var r,a,s,u,c;return o(this,(function(o){switch(o.label){case 0:r="blazor:"+e.name,addRunDependency(r),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.response.then((function(e){return e.arrayBuffer()}))];case 2:return a=o.sent(),s=new Uint8Array(a),u=Module._malloc(s.length),new Uint8Array(Module.HEAPU8.buffer,u,s.length).set(s),i(t,u,s.length),MONO.loaded_files.push((l=e.url,m.href=l,m.href)),[3,4];case 3:return c=o.sent(),n(c),[2];case 4:return removeRunDependency(r),[2]}var l}))}))}}(e,t,n),function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");var t=Object.keys(e.bootConfig.resources.runtime).filter((function(e){return e.startsWith("dotnet.")&&e.endsWith(".js")}))[0],n=e.bootConfig.resources.runtime[t],r=document.createElement("script");if(r.src="_framework/"+t,r.defer=!0,e.bootConfig.cacheBootResources&&(r.integrity=n,r.crossOrigin="anonymous"),e.startOptions.loadBootResource){var o=e.startOptions.loadBootResource("dotnetjs",t,r.src,n);if("string"==typeof o)r.src=o;else if(o)throw new Error("For a dotnetjs resource, custom loaders must supply a URI string.")}document.body.appendChild(r)}(e)},d=document.createElement("script"),window.__wasmmodulecallback__=f,d.type="text/javascript",d.text="var Module; window.__wasmmodulecallback__(); delete window.__wasmmodulecallback__;",document.body.appendChild(d)}))},callEntryPoint:function(e){y("Microsoft.AspNetCore.Components.WebAssembly","Microsoft.AspNetCore.Components.WebAssembly.Hosting.EntrypointInvoker","InvokeEntrypoint")(e,null)},toUint8Array:function(e){var t=v(e),n=h(t);return new Uint8Array(Module.HEAPU8.buffer,t+4,n)},getArrayLength:function(e){return h(v(e))},getArrayEntryPtr:function(e,t,n){return v(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),Module.HEAP16[n>>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>d)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*f+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return p?void 0===(r=p.stringCache.get(o))&&(r=BINDING.conv_string(o),p.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return g(),p=new w},invokeWhenHeapUnlocked:function(e){p?p.enqueuePostReleaseAction(e):e()}};var m=document.createElement("a");function v(e){return e+12}function y(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function b(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function g(){if(p)throw new Error("Assertion failed - heap is currently locked")}var w=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(p!==this)throw new Error("Trying to release a lock which isn't current");for(p=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),g()}},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=window.chrome&&navigator.userAgent.indexOf("Edge")<0,o=!1;function i(){return o&&r}t.hasDebuggingEnabled=i,t.attachDebuggerHotkey=function(e){o=!!e.bootConfig.resources.pdb;var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";i()&&console.info("Debugging hotkey: Shift+"+t+"+D (when application has focus)"),document.addEventListener("keydown",(function(e){var t;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyD"===e.code&&(o?r?((t=document.createElement("a")).href="_framework/debug?url="+encodeURIComponent(location.href),t.target="_blank",t.rel="noopener noreferrer",t.click()):console.error("Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}},function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var i=n(33),a=n(34);t.loadTimezoneData=function(e){var t,n,s=new Uint8Array(e),u=i.readInt32LE(s,0);s=s.slice(4);var c=a.decodeUtf8(s.slice(0,u)),l=JSON.parse(c);s=s.slice(u),Module.FS_createPath("/","zoneinfo",!0,!0),new Set(l.map((function(e){return e[0].split("/")[0]}))).forEach((function(e){return Module.FS_createPath("/zoneinfo",e,!0,!0)}));try{for(var f=r(l),d=f.next();!d.done;d=f.next()){var p=o(d.value,2),h=p[0],m=p[1],v=s.slice(0,m);Module.FS_createDataFile("/zoneinfo/"+h,null,v,!0,!0,!0),s=s.slice(m)}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=f.return)&&n.call(f)}finally{if(t)throw t.error}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(8),a=function(){function e(e,t,n){this.bootConfig=e,this.cacheIfUsed=t,this.startOptions=n,this.usedCacheKeys={},this.networkLoads={},this.cacheLoads={}}return e.initAsync=function(t,n){return r(this,void 0,void 0,(function(){var r;return o(this,(function(o){switch(o.label){case 0:return[4,s(t)];case 1:return r=o.sent(),[2,new e(t,r,n)]}}))}))},e.prototype.loadResources=function(e,t,n){var r=this;return Object.keys(e).map((function(o){return r.loadResource(o,t(o),e[o],n)}))},e.prototype.loadResource=function(e,t,n,r){return{name:e,url:t,response:this.cacheIfUsed?this.loadResourceWithCaching(this.cacheIfUsed,e,t,n,r):this.loadResourceWithoutCaching(e,t,n,r)}},e.prototype.logToConsole=function(){var e=Object.values(this.cacheLoads),t=Object.values(this.networkLoads),n=u(e),r=u(t),o=n+r;if(0!==o){var i=this.bootConfig.linkerEnabled?"%c":"\n%cThis application was built with linking (tree shaking) disabled. Published applications will be significantly smaller.";console.groupCollapsed("%cblazor%c Loaded "+c(o)+" resources"+i,"background: purple; color: white; padding: 1px 3px; border-radius: 3px;","font-weight: bold;","font-weight: normal;"),e.length&&(console.groupCollapsed("Loaded "+c(n)+" resources from cache"),console.table(this.cacheLoads),console.groupEnd()),t.length&&(console.groupCollapsed("Loaded "+c(r)+" resources from network"),console.table(this.networkLoads),console.groupEnd()),console.groupEnd()}},e.prototype.purgeUnusedCacheEntriesAsync=function(){return r(this,void 0,void 0,(function(){var e,t,n,i=this;return o(this,(function(a){switch(a.label){case 0:return(e=this.cacheIfUsed)?[4,e.keys()]:[3,3];case 1:return t=a.sent(),n=t.map((function(t){return r(i,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return t.url in this.usedCacheKeys?[3,2]:[4,e.delete(t)];case 1:n.sent(),n.label=2;case 2:return[2]}}))}))})),[4,Promise.all(n)];case 2:a.sent(),a.label=3;case 3:return[2]}}))}))},e.prototype.loadResourceWithCaching=function(e,t,n,a,s){return r(this,void 0,void 0,(function(){var r,u,c,l;return o(this,(function(o){switch(o.label){case 0:if(!a||0===a.length)throw new Error("Content hash is required");r=i.toAbsoluteUri(n+"."+a),this.usedCacheKeys[r]=!0,o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.match(r)];case 2:return u=o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return u?(c=parseInt(u.headers.get("content-length")||"0"),this.cacheLoads[t]={responseBytes:c},[2,u]):[3,5];case 5:return[4,this.loadResourceWithoutCaching(t,n,a,s)];case 6:return l=o.sent(),this.addToCacheAsync(e,t,r,l),[2,l]}}))}))},e.prototype.loadResourceWithoutCaching=function(e,t,n,r){if(this.startOptions.loadBootResource){var o=this.startOptions.loadBootResource(r,e,t,n);if(o instanceof Promise)return o;"string"==typeof o&&(t=o)}return fetch(t,{cache:"no-cache",integrity:this.bootConfig.cacheBootResources?n:void 0})},e.prototype.addToCacheAsync=function(e,t,n,i){return r(this,void 0,void 0,(function(){var r,a,s,u;return o(this,(function(o){switch(o.label){case 0:return[4,i.clone().arrayBuffer()];case 1:r=o.sent(),a=function(e){if("undefined"!=typeof performance)return performance.getEntriesByName(e)[0]}(i.url),s=a&&a.encodedBodySize||void 0,this.networkLoads[t]={responseBytes:s},u=new Response(r,{headers:{"content-type":i.headers.get("content-type")||"","content-length":(s||i.headers.get("content-length")||"").toString()}}),o.label=2;case 2:return o.trys.push([2,4,,5]),[4,e.put(n,u)];case 3:return o.sent(),[3,5];case 4:return o.sent(),[3,5];case 5:return[2]}}))}))},e}();function s(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:if(!e.cacheBootResources||"undefined"==typeof caches)return[2,null];t=document.baseURI.substring(document.location.origin.length),n="blazor-resources-"+t,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,caches.open(n)];case 2:return[2,r.sent()||null];case 3:return r.sent(),[2,null];case 4:return[2]}}))}))}function u(e){return e.reduce((function(e,t){return e+(t.responseBytes||0)}),0)}function c(e){return(e/1048576).toFixed(2)+" MB"}t.WebAssemblyResourceLoader=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){}return e.initAsync=function(e){return r(this,void 0,void 0,(function(){function t(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return[4,fetch(e,{method:"GET",credentials:"include",cache:"no-cache"})];case 1:return t=r.sent(),n=Uint8Array.bind,[4,t.arrayBuffer()];case 2:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))]}}))}))}var n,i=this;return o(this,(function(a){switch(a.label){case 0:return window.Blazor._internal.getApplicationEnvironment=function(){return BINDING.js_string_to_mono_string(e.applicationEnvironment)},[4,Promise.all((e.bootConfig.config||[]).filter((function(t){return"appsettings.json"===t||t==="appsettings."+e.applicationEnvironment+".json"})).map((function(e){return r(i,void 0,void 0,(function(){var n;return o(this,(function(r){switch(r.label){case 0:return n={name:e},[4,t(e)];case 1:return[2,(n.content=r.sent(),n)]}}))}))})))];case 1:return n=a.sent(),window.Blazor._internal.getConfig=function(e){var t=BINDING.conv_string(e),r=n.find((function(e){return e.name===t}));return r?BINDING.js_typed_array_to_array(r.content):void 0},[2]}}))}))},e}();t.WebAssemblyConfigLoader=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){this.bootConfig=e,this.applicationEnvironment=t}return e.initAsync=function(){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return[4,fetch("_framework/blazor.boot.json",{method:"GET",credentials:"include",cache:"no-cache"})];case 1:return t=r.sent(),n=t.headers.get("Blazor-Environment")||"Production",[4,t.json()];case 2:return[2,new e(r.sent(),n)]}}))}))},e}();t.BootConfigResult=i}]); \ No newline at end of file diff --git a/src/Components/Web.JS/src/Rendering/LogicalElements.ts b/src/Components/Web.JS/src/Rendering/LogicalElements.ts index 5b4aac4295c2..7d09d94cee32 100644 --- a/src/Components/Web.JS/src/Rendering/LogicalElements.ts +++ b/src/Components/Web.JS/src/Rendering/LogicalElements.ts @@ -132,8 +132,10 @@ export function removeLogicalChild(parent: LogicalElement, childIndex: number) { // If it's a logical container, also remove its descendants if (childToRemove instanceof Comment) { const grandchildrenArray = getLogicalChildrenArray(childToRemove); - while (grandchildrenArray.length > 0) { - removeLogicalChild(childToRemove, 0); + if (grandchildrenArray) { + while (grandchildrenArray.length > 0) { + removeLogicalChild(childToRemove, 0); + } } } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index a1c9e8e9b18b..e56772d32f65 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -72,6 +72,51 @@ public void IsCompatibleWithLazyLoadWebAssembly() AssertLogDoesNotContainCriticalMessages("Could not load file or assembly 'Newtonsoft.Json"); } + [Fact] + public void CanInfluenceHeadDuringPrerender() + { + Navigate("/prerendered/prerendered-head"); + + var metaWithBindings = Browser.FindElement(By.Id("meta-with-bindings")); + var metaNoBindings = Browser.FindElement(By.Id("meta-no-bindings")); + + // Validate updated head during prerender + Browser.Equal("Initial title", () => Browser.Title); + Browser.Equal("Initial meta content", () => metaWithBindings.GetAttribute("content")); + Browser.Equal("Immutable meta content", () => metaNoBindings.GetAttribute("content")); + + BeginInteractivity(); + + // Wait for elements to be recreated with internal ids to permit mutation + WaitForNewElement(ref metaWithBindings, "meta-with-bindings"); + WaitForNewElement(ref metaNoBindings, "meta-no-bindings"); + + // Validate updated head after prerender + Browser.Equal("Initial title", () => Browser.Title); + Browser.Equal("Initial meta content", () => metaWithBindings.GetAttribute("content")); + Browser.Equal("Immutable meta content", () => metaNoBindings.GetAttribute("content")); + + // Change parameter of meta component + var inputMetaBinding = Browser.FindElement(By.Id("input-meta-binding")); + inputMetaBinding.Clear(); + inputMetaBinding.SendKeys("Updated meta content\n"); + + // Wait for meta tag to be recreated with new attributes + WaitForNewElement(ref metaWithBindings, "meta-with-bindings"); + + // Validate new meta content attribute + Browser.Equal("Updated meta content", () => metaWithBindings.GetAttribute("content")); + + void WaitForNewElement(ref IWebElement existingElement, string id) + { + var newElement = existingElement; + + Browser.NotEqual(existingElement, () => newElement = Browser.FindElement(By.Id(id)) ?? newElement); + + existingElement = newElement; + } + } + [Fact] public void CanReadUrlHashOnlyOnceConnected() { diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs index 0011402990ad..1635a7effc07 100644 --- a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs @@ -85,22 +85,26 @@ public void Meta_UpdatesSameElementWhenComponentPropertyChanged() { var metaAttributeInput1 = Browser.FindElement(By.Id("meta-attr-input-1")); var metaAttributeInput2 = Browser.FindElement(By.Id("meta-attr-input-2")); - var metaElement = Browser.FindElement(By.Id("meta-with-bindings")); + var metaElement = FindMetaElement(); Browser.Equal("First attribute", () => metaElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); metaAttributeInput1.Clear(); metaAttributeInput1.SendKeys("hello\n"); + metaElement = FindMetaElement(); Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); metaAttributeInput2.Clear(); metaAttributeInput2.SendKeys("world\n"); + metaElement = FindMetaElement(); Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); Browser.Equal("world", () => metaElement.GetAttribute("attr2")); + + IWebElement FindMetaElement() => Browser.FindElements(By.Id("meta-with-bindings")).Single(); } [Fact] @@ -133,22 +137,26 @@ public void Link_UpdatesSameElementWhenComponentPropertyChanged() { var linkAttributeInput1 = Browser.FindElement(By.Id("link-attr-input-1")); var linkAttributeInput2 = Browser.FindElement(By.Id("link-attr-input-2")); - var linkElement = Browser.FindElement(By.Id("link-with-bindings")); + var linkElement = FindLinkElement(); Browser.Equal("First attribute", () => linkElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); linkAttributeInput1.Clear(); linkAttributeInput1.SendKeys("hello\n"); + linkElement = FindLinkElement(); Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); linkAttributeInput2.Clear(); linkAttributeInput2.SendKeys("world\n"); + linkElement = FindLinkElement(); Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); Browser.Equal("world", () => linkElement.GetAttribute("attr2")); + + IWebElement FindLinkElement() => Browser.FindElements(By.Id("link-with-bindings")).Single(); } } } diff --git a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor new file mode 100644 index 000000000000..73527432faf9 --- /dev/null +++ b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor @@ -0,0 +1,29 @@ +@page "/prerendered-head" + +@using Microsoft.AspNetCore.Components.Web.Extensions +@using Microsoft.JSInterop +@inject IJSRuntime JSRuntime + +<p> + This component demonstrates that head components (i.e. Title, Meta, etc.) can take effect during prerendering + and become updatable when the circuit connects. +</p> + +<p> + Title:<br /> + <input id="title-input" @bind="title" placeholder="Set the title" /> + <Title Value=@title /> +</p> + +<p> + Meta:<br /> + <input id="input-meta-binding" @bind="metaContent" placeholder="Set the meta content" /> + <Meta id="meta-with-bindings" content="@metaContent" /> +</p> + +<Meta id="meta-no-bindings" content="Immutable meta content" /> + +@code { + private string title = "Initial title"; + private string metaContent = "Initial meta content"; +} diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index 1e640b59dc64..d27a4f5128ae 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -44,6 +44,8 @@ public static async Task Main(string[] args) builder.Services.AddTransient<ProtectedLocalStorage>(); builder.Services.AddTransient<ProtectedSessionStorage>(); + builder.Services.AddHeadManagement(); + builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); builder.Logging.Services.AddSingleton<ILoggerProvider, PrependMessageLoggerProvider>(s => diff --git a/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml b/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml index 771db99bd3c6..e5656cfd7c5d 100644 --- a/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/PrerenderedHost.cshtml @@ -19,6 +19,9 @@ <button id="load-boot-script" onclick="start()">Load boot script</button> <script src="_framework/blazor.server.js" autostart="false"></script> + + <script src="_content/Microsoft.AspNetCore.Components.Web.Extensions/headManager.js"></script> + <script> // Used by InteropOnInitializationComponent function setElementValue(element, newValue) { diff --git a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs index a218cae7f080..f45c23d1471c 100644 --- a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs +++ b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.Components.WebAssembly.Services; using Microsoft.JSInterop; +using Microsoft.AspNetCore.Components.Web.Extensions; namespace TestServer { @@ -23,6 +24,7 @@ public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddServerSideBlazor(); + services.AddHeadManagement(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(); services.AddSingleton<LazyAssemblyLoader>(); } diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 90d6e862fa91..e2bcdeab1817 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Components.Web.Extensions; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,6 +22,7 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddProtectedBrowserStorage(); + services.AddHeadManagement(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 74ef65aa62604fbbe763296039d897d1c51ff71d Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 15 Jul 2020 14:44:37 -0700 Subject: [PATCH 14/20] Small documentation updates. --- .../src/HeadManagement/HeadTagBase.cs | 4 ++++ .../test/E2ETest/Tests/HeadComponentsTest.cs | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index d351a3743f00..37ca66a4ded5 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -28,6 +28,10 @@ public abstract class HeadTagBase : ComponentBase, IDisposable [Parameter(CaptureUnmatchedValues = true)] public IReadOnlyDictionary<string, object>? Attributes { get; set; } + /// <summary> + /// Instantiates a new <see cref="HeadTagBase"/> instance. + /// </summary> + /// <param name="tagName">The name of the tag being represented.</param> protected HeadTagBase(string tagName) { _tagElement = new TagElement(tagName); diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs index 1635a7effc07..f84f0b1bce47 100644 --- a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs @@ -63,6 +63,7 @@ public void Meta_AddsAndRemovesElements() .Select(i => (i, Browser.FindElement(By.Id($"button-meta-{i}")))) .ToList(); + // Validate adding elements Assert.All(metaButtonsById, buttonById => { var (id, button) = buttonById; @@ -71,6 +72,7 @@ public void Meta_AddsAndRemovesElements() Browser.Exists(By.Id($"Meta {id}")); }); + // Validate removing elements Assert.All(metaButtonsById, buttonById => { var (id, button) = buttonById; @@ -87,20 +89,25 @@ public void Meta_UpdatesSameElementWhenComponentPropertyChanged() var metaAttributeInput2 = Browser.FindElement(By.Id("meta-attr-input-2")); var metaElement = FindMetaElement(); + // Validate initial attribute values Browser.Equal("First attribute", () => metaElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); + // Update the first parameter of the component metaAttributeInput1.Clear(); metaAttributeInput1.SendKeys("hello\n"); metaElement = FindMetaElement(); + // Validate first attribute updated Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => metaElement.GetAttribute("attr2")); + // Update the second parameter of the component metaAttributeInput2.Clear(); metaAttributeInput2.SendKeys("world\n"); metaElement = FindMetaElement(); + // Validate second attribute updated Browser.Equal("hello", () => metaElement.GetAttribute("attr1")); Browser.Equal("world", () => metaElement.GetAttribute("attr2")); @@ -115,6 +122,7 @@ public void Link_AddsAndRemovesElements() .Select(i => (i, Browser.FindElement(By.Id($"button-link-{i}")))) .ToList(); + // Validate adding elements Assert.All(linkButtonsById, buttonById => { var (id, button) = buttonById; @@ -123,6 +131,7 @@ public void Link_AddsAndRemovesElements() Browser.Exists(By.Id($"Link {id}")); }); + // Validate removing elements Assert.All(linkButtonsById, buttonById => { var (id, button) = buttonById; @@ -139,20 +148,25 @@ public void Link_UpdatesSameElementWhenComponentPropertyChanged() var linkAttributeInput2 = Browser.FindElement(By.Id("link-attr-input-2")); var linkElement = FindLinkElement(); + // Validate initial attribute values Browser.Equal("First attribute", () => linkElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); + // Update the first parameter of the component linkAttributeInput1.Clear(); linkAttributeInput1.SendKeys("hello\n"); linkElement = FindLinkElement(); + // Validate first attribute updated Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); Browser.Equal("Second attribute", () => linkElement.GetAttribute("attr2")); + // Update the second parameter of the component linkAttributeInput2.Clear(); linkAttributeInput2.SendKeys("world\n"); linkElement = FindLinkElement(); + // Validate second attribute updated Browser.Equal("hello", () => linkElement.GetAttribute("attr1")); Browser.Equal("world", () => linkElement.GetAttribute("attr2")); From 0367f9c7756cedb8e127ec869645b4c54fd1b88e Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 15 Jul 2020 15:04:14 -0700 Subject: [PATCH 15/20] Made TagElement and TitleElement readonly. --- .../Web.Extensions/src/HeadManagement/HeadTagBase.cs | 10 +++------- .../Web.Extensions/src/HeadManagement/Link.cs | 8 ++------ .../Web.Extensions/src/HeadManagement/Meta.cs | 7 +------ .../Web.Extensions/src/HeadManagement/TagElement.cs | 8 ++++---- .../Web.Extensions/src/HeadManagement/Title.cs | 2 +- .../Web.Extensions/src/HeadManagement/TitleElement.cs | 9 +++++++-- 6 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index 37ca66a4ded5..201d75559e41 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -29,13 +29,9 @@ public abstract class HeadTagBase : ComponentBase, IDisposable public IReadOnlyDictionary<string, object>? Attributes { get; set; } /// <summary> - /// Instantiates a new <see cref="HeadTagBase"/> instance. + /// Gets the name of the tag being represented. /// </summary> - /// <param name="tagName">The name of the tag being represented.</param> - protected HeadTagBase(string tagName) - { - _tagElement = new TagElement(tagName); - } + protected abstract string TagName { get; } /// <inheritdoc /> protected override void OnInitialized() @@ -47,7 +43,7 @@ protected override void OnInitialized() /// <inheritdoc /> protected override void OnParametersSet() { - _tagElement.Attributes = Attributes; + _tagElement = new TagElement(TagName, Attributes); } /// <inheritdoc /> diff --git a/src/Components/Web.Extensions/src/HeadManagement/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs index bac87bbff11c..b531557a747e 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Link.cs @@ -8,11 +8,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions /// </summary> public class Link : HeadTagBase { - /// <summary> - /// Instantiates a new <see cref="Link"/> instance. - /// </summary> - public Link() : base("link") - { - } + /// <inheritdoc /> + protected override string TagName => "link"; } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs index 62ba8c0bf0f0..eae687d99a32 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs @@ -8,11 +8,6 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions /// </summary> public class Meta : HeadTagBase { - /// <summary> - /// Instantiates a new <see cref="Meta"/> instance. - /// </summary> - public Meta() : base("meta") - { - } + protected override string TagName => "meta"; } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs index 5a49da78dece..0dd1871ff983 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs @@ -5,18 +5,18 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { - internal struct TagElement : IHeadElement + internal readonly struct TagElement : IHeadElement { public string Type => "tag"; public string TagName { get; } - public IReadOnlyDictionary<string, object>? Attributes { get; set; } + public IReadOnlyDictionary<string, object>? Attributes { get; } - public TagElement(string tagName) + public TagElement(string tagName, IReadOnlyDictionary<string, object>? attributes) { TagName = tagName; - Attributes = null; + Attributes = attributes; } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs index 5d4b25b34714..2abc81e830d5 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -41,7 +41,7 @@ protected override void BuildRenderTree(RenderTreeBuilder builder) { if (_headManager.IsPrerendering) { - _headManager.BuildHeadElementComment(builder, new TitleElement { Title = Value }); + _headManager.BuildHeadElementComment(builder, new TitleElement(Value)); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs index d05338c6f156..9a9ace247273 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs @@ -3,10 +3,15 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { - internal struct TitleElement : IHeadElement + internal readonly struct TitleElement : IHeadElement { public string Type => "title"; - public string Title { get; set; } + public string Title { get; } + + public TitleElement(string title) + { + Title = title; + } } } From 307d582b2a8c6764ed50e420ac7938dbd2df93f5 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 15 Jul 2020 16:57:03 -0700 Subject: [PATCH 16/20] Removed M.A.Components.Server dependency. --- .../HeadManagementJSRuntimeExtensions.cs | 25 +++++++++ ...adManagementRenderTreeBuilderExtensions.cs | 13 +++++ ...adManagementServiceCollectionExtensions.cs | 23 -------- .../src/HeadManagement/HeadManager.cs | 56 ------------------- .../src/HeadManagement/HeadTagBase.cs | 25 +++------ .../src/HeadManagement/IHeadElement.cs | 10 ---- .../Web.Extensions/src/HeadManagement/Link.cs | 2 +- .../Web.Extensions/src/HeadManagement/Meta.cs | 3 +- .../ServiceProviderExtensions.cs | 16 ------ .../src/HeadManagement/TagElement.cs | 2 +- .../src/HeadManagement/Title.cs | 22 ++------ .../src/HeadManagement/TitleElement.cs | 2 +- ...spNetCore.Components.Web.Extensions.csproj | 1 - ...ebExtensionsServiceCollectionExtensions.cs | 19 +++++++ .../Web.Extensions/src/wwwroot/headManager.js | 42 ++++++-------- .../test/testassets/BasicTestApp/Program.cs | 2 +- .../TestServer/PrerenderedStartup.cs | 3 +- .../testassets/TestServer/ServerStartup.cs | 2 +- 18 files changed, 96 insertions(+), 172 deletions(-) create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs create mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs create mode 100644 src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs new file mode 100644 index 000000000000..b3a747c695de --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs @@ -0,0 +1,25 @@ +using System.Threading.Tasks; +using Microsoft.JSInterop; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal static class HeadManagementJSRuntimeExtensions + { + private const string JsFunctionsPrefix = "_blazorHeadManager"; + + public static ValueTask SetTitleAsync(this IJSRuntime jsRuntime, string title) + { + return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); + } + + public static ValueTask ApplyTagAsync(this IJSRuntime jsRuntime, TagElement tag, string id) + { + return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.applyHeadTag", tag, id); + } + + public static ValueTask RemoveTagAsync(this IJSRuntime jsRuntime, string id) + { + return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removeHeadTag", id); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs new file mode 100644 index 000000000000..fdab0c31d7c5 --- /dev/null +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs @@ -0,0 +1,13 @@ +using System.Text.Json; +using Microsoft.AspNetCore.Components.Rendering; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + internal static class HeadManagementRenderTreeBuilderExtensions + { + public static void BuildHeadElementComment<TElement>(this RenderTreeBuilder builder, int sequence, TElement element) + { + builder.AddMarkupContent(sequence, $"<!--Head:{JsonSerializer.Serialize(element, JsonSerializerOptionsProvider.Options)}-->"); + } + } +} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs deleted file mode 100644 index 3c2ebcd0682d..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementServiceCollectionExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNetCore.Components.Server.Circuits; -using Microsoft.Extensions.DependencyInjection; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// Extension methods for registering head management services. - /// </summary> - public static class HeadManagementServiceCollectionExtensions - { - /// <summary> - /// Adds services for head management to the specified <see cref="IServiceCollection"/>. - /// </summary> - /// <param name="services">The <see cref="IServiceCollection"/>.</param> - public static void AddHeadManagement(this IServiceCollection services) - { - services.AddScoped<CircuitHandler, HeadManager>(); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs deleted file mode 100644 index 5dc4adcd9f10..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManager.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Runtime.InteropServices; -using System.Text.Json; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Rendering; -using Microsoft.AspNetCore.Components.Server.Circuits; -using Microsoft.JSInterop; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal class HeadManager : CircuitHandler - { - private const string JsFunctionsPrefix = "_blazorHeadManager"; - - private readonly IJSRuntime _jsRuntime; - - public bool IsPrerendering { get; private set; } - - public HeadManager(IJSRuntime jsRuntime) - { - _jsRuntime = jsRuntime; - - IsPrerendering = !RuntimeInformation.IsOSPlatform(OSPlatform.Browser); - } - - public void BuildHeadElementComment<TElement>(RenderTreeBuilder builder, TElement element) where TElement : IHeadElement - { - builder.AddMarkupContent(0, $"<!--Head:{JsonSerializer.Serialize(element, JsonSerializerOptionsProvider.Options)}-->"); - } - - public async ValueTask SetTitleAsync(string title) - { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); - } - - public async ValueTask ApplyTagAsync(TagElement tag, string id) - { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.applyHeadTag", tag, id); - } - - public async ValueTask RemoveTagAsync(string id) - { - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removeHeadTag", id); - } - - public override async Task OnCircuitOpenedAsync(Circuit circuit, CancellationToken cancellationToken) - { - IsPrerendering = false; - - await _jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removePrerenderedHeadTags"); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index 201d75559e41..8fc6dd70f9ed 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.JSInterop; namespace Microsoft.AspNetCore.Components.Web.Extensions { @@ -17,10 +18,10 @@ public abstract class HeadTagBase : ComponentBase, IDisposable private TagElement _tagElement; - private HeadManager _headManager = default!; + private bool _hasRendered = false; [Inject] - private IServiceProvider ServiceProvider { get; set; } = default!; + private IJSRuntime JSRuntime { get; set; } = default!; /// <summary> /// Gets or sets a collection of additional attributes that will be applied to the meta element. @@ -33,13 +34,6 @@ public abstract class HeadTagBase : ComponentBase, IDisposable /// </summary> protected abstract string TagName { get; } - /// <inheritdoc /> - protected override void OnInitialized() - { - _headManager = ServiceProvider.GetHeadManager() ?? - throw new InvalidOperationException($"{GetType()} requires a {typeof(HeadManager)} service."); - } - /// <inheritdoc /> protected override void OnParametersSet() { @@ -49,24 +43,23 @@ protected override void OnParametersSet() /// <inheritdoc /> protected override async Task OnAfterRenderAsync(bool firstRender) { - await _headManager.ApplyTagAsync(_tagElement, _id); + _hasRendered = true; + + await JSRuntime.ApplyTagAsync(_tagElement, _id); } /// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { - if (_headManager.IsPrerendering) - { - _headManager.BuildHeadElementComment(builder, _tagElement); - } + builder.BuildHeadElementComment(0, _tagElement); } /// <inheritdoc /> public void Dispose() { - if (!_headManager.IsPrerendering) + if (_hasRendered) { - _ = _headManager.RemoveTagAsync(_id); + _ = JSRuntime.RemoveTagAsync(_id); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs b/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs deleted file mode 100644 index 7c5553166133..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/IHeadElement.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal interface IHeadElement - { - public string Type { get; } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs index b531557a747e..6971487332a4 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Link.cs @@ -6,7 +6,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions /// <summary> /// A component that adds a link tag to the HTML head. /// </summary> - public class Link : HeadTagBase + public sealed class Link : HeadTagBase { /// <inheritdoc /> protected override string TagName => "link"; diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs index eae687d99a32..42daadfa99ef 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs @@ -6,8 +6,9 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions /// <summary> /// A component that adds a meta tag to the HTML head. /// </summary> - public class Meta : HeadTagBase + public sealed class Meta : HeadTagBase { + /// <inheritdoc /> protected override string TagName => "meta"; } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs deleted file mode 100644 index 183c6a3bd7b3..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/ServiceProviderExtensions.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Linq; -using Microsoft.AspNetCore.Components.Server.Circuits; -using Microsoft.Extensions.DependencyInjection; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal static class ServiceProviderExtensions - { - public static HeadManager? GetHeadManager(this IServiceProvider serviceProvider) - => serviceProvider.GetServices<CircuitHandler>().OfType<HeadManager>().SingleOrDefault(); - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs index 0dd1871ff983..c682e8b40461 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { - internal readonly struct TagElement : IHeadElement + internal readonly struct TagElement { public string Type => "tag"; diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs index 2abc81e830d5..1f168ea6082d 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -1,21 +1,19 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.Rendering; +using Microsoft.JSInterop; namespace Microsoft.AspNetCore.Components.Web.Extensions { /// <summary> /// A component that changes the title of the document. /// </summary> - public class Title : ComponentBase + public sealed class Title : ComponentBase { - private HeadManager _headManager = default!; - [Inject] - private IServiceProvider ServiceProvider { get; set; } = default!; + private IJSRuntime JSRuntime { get; set; } = default!; /// <summary> /// Gets or sets the value to use as the document's title. @@ -23,26 +21,16 @@ public class Title : ComponentBase [Parameter] public string Value { get; set; } = string.Empty; - /// <inheritdoc /> - protected override void OnInitialized() - { - _headManager = ServiceProvider.GetHeadManager() ?? - throw new InvalidOperationException($"{GetType()} requires a {typeof(HeadManager)} service."); - } - /// <inheritdoc /> protected override async Task OnAfterRenderAsync(bool firstRender) { - await _headManager.SetTitleAsync(Value); + await JSRuntime.SetTitleAsync(Value); } /// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { - if (_headManager.IsPrerendering) - { - _headManager.BuildHeadElementComment(builder, new TitleElement(Value)); - } + builder.BuildHeadElementComment(0, new TitleElement(Value)); } } } diff --git a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs index 9a9ace247273..0ca23f970952 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs @@ -3,7 +3,7 @@ namespace Microsoft.AspNetCore.Components.Web.Extensions { - internal readonly struct TitleElement : IHeadElement + internal readonly struct TitleElement { public string Type => "title"; diff --git a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj index 29b2f20d061a..dcc5f5348a90 100644 --- a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj +++ b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj @@ -11,7 +11,6 @@ <ItemGroup> <Reference Include="Microsoft.AspNetCore.Components" /> - <Reference Include="Microsoft.AspNetCore.Components.Server" /> <Reference Include="Microsoft.AspNetCore.DataProtection" /> <Reference Include="Microsoft.JSInterop" /> </ItemGroup> diff --git a/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs new file mode 100644 index 000000000000..4c93b3b4e7a9 --- /dev/null +++ b/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs @@ -0,0 +1,19 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Components.Web.Extensions +{ + /// <summary> + /// Extension methods for registering Web.Extensions services. + /// </summary> + public static class WebExtensionsServiceCollectionExtensions + { + /// <summary> + /// Adds web extensions services to the specified <see cref="IServiceCollection"/>. + /// </summary> + /// <param name="services">The <see cref="IServiceCollection"/>.</param> + public static void AddWebExtensions(this IServiceCollection services) + { + // Future services will be added here. + } + } +} diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index ae5ac0017148..e534986e34d2 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -8,16 +8,15 @@ function createHeadTag({ tagName, attributes }, id) { const tagElement = document.createElement(tagName); + // The id is undefined during prerendering if (id) { tagElement.setAttribute(blazorIdAttributeName, id); } if (attributes) { - for (const key in attributes) { - if (attributes.hasOwnProperty(key)) { - tagElement.setAttribute(key, attributes[key]); - } - } + Object.keys(attributes).forEach(key => { + tagElement.setAttribute(key, attributes[key]); + }); } document.head.appendChild(tagElement); @@ -46,6 +45,8 @@ const tag = createHeadTag(headElement); prerenderedTags.push(tag); break; + default: + throw new Error(`Invalid head element type '${headElement.type}'.`); } } @@ -60,19 +61,18 @@ return; } - const headStartComment = new RegExp(headCommentRegularExpression); - const definition = headStartComment.exec(commentText); + const definition = headCommentRegularExpression.exec(commentText); const json = definition && definition[1]; - if (json) { - try { - return JSON.parse(json); - } catch (error) { - throw new Error(`Found malformed head comment '${commentText}'.`); - } - } else { - return; - } + return json && JSON.parse(json); + } + + function removePrerenderedHeadTags() { + prerenderedTags.forEach((tag) => { + tag.remove(); + }); + + prerenderedTags.length = 0; } // Exported functions @@ -82,6 +82,7 @@ } function applyHeadTag(tag, id) { + removePrerenderedHeadTags(); removeHeadTag(id); createHeadTag(tag, id); } @@ -91,19 +92,10 @@ tag && tag.remove(); } - function removePrerenderedHeadTags() { - prerenderedTags.forEach((tag) => { - tag.remove(); - }); - - prerenderedTags.length = 0; - } - window._blazorHeadManager = { setTitle, applyHeadTag, removeHeadTag, - removePrerenderedHeadTags, }; resolvePrerenderedHeadComponents(document); diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index d27a4f5128ae..b0368a6b39a4 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -44,7 +44,7 @@ public static async Task Main(string[] args) builder.Services.AddTransient<ProtectedLocalStorage>(); builder.Services.AddTransient<ProtectedSessionStorage>(); - builder.Services.AddHeadManagement(); + builder.Services.AddWebExtensions(); builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); diff --git a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs index f45c23d1471c..e676b669ea19 100644 --- a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs +++ b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.Components.WebAssembly.Services; -using Microsoft.JSInterop; using Microsoft.AspNetCore.Components.Web.Extensions; namespace TestServer @@ -24,7 +23,7 @@ public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddServerSideBlazor(); - services.AddHeadManagement(); + services.AddWebExtensions(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(); services.AddSingleton<LazyAssemblyLoader>(); } diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index e2bcdeab1817..55ffbf62b2dd 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -22,7 +22,7 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddProtectedBrowserStorage(); - services.AddHeadManagement(); + services.AddWebExtensions(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 23fdb48cde55206a694c4a31fe66c22e103318c3 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Thu, 16 Jul 2020 09:17:01 -0700 Subject: [PATCH 17/20] Minor fixes and updates. --- .../HeadManagement/HeadManagementJSRuntimeExtensions.cs | 9 ++++++--- .../HeadManagementRenderTreeBuilderExtensions.cs | 3 +++ .../Web.Extensions/src/HeadManagement/HeadTagBase.cs | 4 ++-- src/Components/Web.Extensions/src/wwwroot/headManager.js | 4 ++-- ...adComponents.razor => PrerenderedHeadComponent.razor} | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) rename src/Components/test/testassets/BasicTestApp/{PrerenderedHeadComponents.razor => PrerenderedHeadComponent.razor} (91%) diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs index b3a747c695de..08ce07423a88 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs @@ -1,3 +1,6 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System.Threading.Tasks; using Microsoft.JSInterop; @@ -12,12 +15,12 @@ public static ValueTask SetTitleAsync(this IJSRuntime jsRuntime, string title) return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.setTitle", title); } - public static ValueTask ApplyTagAsync(this IJSRuntime jsRuntime, TagElement tag, string id) + public static ValueTask AddOrUpdateHeadTagAsync(this IJSRuntime jsRuntime, TagElement tag, string id) { - return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.applyHeadTag", tag, id); + return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.addOrUpdateHeadTag", tag, id); } - public static ValueTask RemoveTagAsync(this IJSRuntime jsRuntime, string id) + public static ValueTask RemoveHeadTagAsync(this IJSRuntime jsRuntime, string id) { return jsRuntime.InvokeVoidAsync($"{JsFunctionsPrefix}.removeHeadTag", id); } diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs index fdab0c31d7c5..58f2b8adb65c 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs @@ -1,3 +1,6 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + using System.Text.Json; using Microsoft.AspNetCore.Components.Rendering; diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index 8fc6dd70f9ed..65f58335d97b 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -45,7 +45,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender) { _hasRendered = true; - await JSRuntime.ApplyTagAsync(_tagElement, _id); + await JSRuntime.AddOrUpdateHeadTagAsync(_tagElement, _id); } /// <inheritdoc /> @@ -59,7 +59,7 @@ public void Dispose() { if (_hasRendered) { - _ = JSRuntime.RemoveTagAsync(_id); + _ = JSRuntime.RemoveHeadTagAsync(_id); } } } diff --git a/src/Components/Web.Extensions/src/wwwroot/headManager.js b/src/Components/Web.Extensions/src/wwwroot/headManager.js index e534986e34d2..e871b72afef4 100644 --- a/src/Components/Web.Extensions/src/wwwroot/headManager.js +++ b/src/Components/Web.Extensions/src/wwwroot/headManager.js @@ -81,7 +81,7 @@ document.title = title; } - function applyHeadTag(tag, id) { + function addOrUpdateHeadTag(tag, id) { removePrerenderedHeadTags(); removeHeadTag(id); createHeadTag(tag, id); @@ -94,7 +94,7 @@ window._blazorHeadManager = { setTitle, - applyHeadTag, + addOrUpdateHeadTag, removeHeadTag, }; diff --git a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor similarity index 91% rename from src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor rename to src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor index 73527432faf9..ba6bc3725906 100644 --- a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponents.razor +++ b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor @@ -25,5 +25,5 @@ @code { private string title = "Initial title"; - private string metaContent = "Initial meta content"; + private string metaContent = "-->";//"Initial meta content"; } From ef05f607f1734ab7645257863eb84b7e6e5aebb9 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Thu, 16 Jul 2020 10:48:20 -0700 Subject: [PATCH 18/20] Update PrerenderedHeadComponent.razor --- .../test/testassets/BasicTestApp/PrerenderedHeadComponent.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor index ba6bc3725906..73527432faf9 100644 --- a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor @@ -25,5 +25,5 @@ @code { private string title = "Initial title"; - private string metaContent = "-->";//"Initial meta content"; + private string metaContent = "Initial meta content"; } From 29d5a71807eeb0977f8a0e4e2d396b6eab98f402 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Thu, 16 Jul 2020 11:56:26 -0700 Subject: [PATCH 19/20] Removed AddWebExtensions. --- ...adManagementRenderTreeBuilderExtensions.cs | 16 ---------------- .../src/HeadManagement/HeadTagBase.cs | 5 +++-- .../src/HeadManagement/Title.cs | 3 ++- ...ebExtensionsServiceCollectionExtensions.cs | 19 ------------------- .../test/testassets/BasicTestApp/Program.cs | 2 -- .../TestServer/PrerenderedStartup.cs | 2 -- .../testassets/TestServer/ServerStartup.cs | 2 -- 7 files changed, 5 insertions(+), 44 deletions(-) delete mode 100644 src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs delete mode 100644 src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs deleted file mode 100644 index 58f2b8adb65c..000000000000 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementRenderTreeBuilderExtensions.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Text.Json; -using Microsoft.AspNetCore.Components.Rendering; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - internal static class HeadManagementRenderTreeBuilderExtensions - { - public static void BuildHeadElementComment<TElement>(this RenderTreeBuilder builder, int sequence, TElement element) - { - builder.AddMarkupContent(sequence, $"<!--Head:{JsonSerializer.Serialize(element, JsonSerializerOptionsProvider.Options)}-->"); - } - } -} diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index 65f58335d97b..ef9e18bfbc55 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.Rendering; using Microsoft.JSInterop; @@ -18,7 +19,7 @@ public abstract class HeadTagBase : ComponentBase, IDisposable private TagElement _tagElement; - private bool _hasRendered = false; + private bool _hasRendered; [Inject] private IJSRuntime JSRuntime { get; set; } = default!; @@ -51,7 +52,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender) /// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { - builder.BuildHeadElementComment(0, _tagElement); + builder.AddMarkupContent(0, $"<!--Head:{JsonSerializer.Serialize(_tagElement, JsonSerializerOptionsProvider.Options)}-->"); } /// <inheritdoc /> diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs index 1f168ea6082d..8e587de614c0 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.Components.Rendering; using Microsoft.JSInterop; @@ -30,7 +31,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender) /// <inheritdoc /> protected override void BuildRenderTree(RenderTreeBuilder builder) { - builder.BuildHeadElementComment(0, new TitleElement(Value)); + builder.AddMarkupContent(0, $"<!--Head:{JsonSerializer.Serialize(new TitleElement(Value), JsonSerializerOptionsProvider.Options)}-->"); } } } diff --git a/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs b/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs deleted file mode 100644 index 4c93b3b4e7a9..000000000000 --- a/src/Components/Web.Extensions/src/WebExtensionsServiceCollectionExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; - -namespace Microsoft.AspNetCore.Components.Web.Extensions -{ - /// <summary> - /// Extension methods for registering Web.Extensions services. - /// </summary> - public static class WebExtensionsServiceCollectionExtensions - { - /// <summary> - /// Adds web extensions services to the specified <see cref="IServiceCollection"/>. - /// </summary> - /// <param name="services">The <see cref="IServiceCollection"/>.</param> - public static void AddWebExtensions(this IServiceCollection services) - { - // Future services will be added here. - } - } -} diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index b0368a6b39a4..1e640b59dc64 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -44,8 +44,6 @@ public static async Task Main(string[] args) builder.Services.AddTransient<ProtectedLocalStorage>(); builder.Services.AddTransient<ProtectedSessionStorage>(); - builder.Services.AddWebExtensions(); - builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); builder.Logging.Services.AddSingleton<ILoggerProvider, PrependMessageLoggerProvider>(s => diff --git a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs index e676b669ea19..961333fb6e20 100644 --- a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs +++ b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.Components.WebAssembly.Services; -using Microsoft.AspNetCore.Components.Web.Extensions; namespace TestServer { @@ -23,7 +22,6 @@ public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddServerSideBlazor(); - services.AddWebExtensions(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(); services.AddSingleton<LazyAssemblyLoader>(); } diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 55ffbf62b2dd..90d6e862fa91 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Components.Web.Extensions; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +21,6 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddProtectedBrowserStorage(); - services.AddWebExtensions(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 2c0eb503fbc099afdb4ca0a298b7b0320b70e6e2 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck <mackinnon.buck@gmail.com> Date: Wed, 22 Jul 2020 11:03:06 -0700 Subject: [PATCH 20/20] Applied CR feedback --- .../HeadManagementJSRuntimeExtensions.cs | 2 +- .../Web.Extensions/src/HeadManagement/HeadTagBase.cs | 2 +- .../Web.Extensions/src/HeadManagement/Link.cs | 2 +- .../Web.Extensions/src/HeadManagement/Meta.cs | 2 +- .../Web.Extensions/src/HeadManagement/TagElement.cs | 2 +- .../Web.Extensions/src/HeadManagement/Title.cs | 2 +- .../Web.Extensions/src/HeadManagement/TitleElement.cs | 2 +- ...crosoft.AspNetCore.Components.Web.Extensions.csproj | 3 +-- src/Components/Web.JS/dist/Release/blazor.server.js | 6 +++--- .../E2ETest/ServerExecutionTests/PrerenderingTest.cs | 10 +++++----- .../testassets/BasicTestApp/ModifyHeadComponent.razor | 10 +++++----- .../BasicTestApp/PrerenderedHeadComponent.razor | 2 +- 12 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs index 08ce07423a88..aafbbf194e96 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadManagementJSRuntimeExtensions.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { internal static class HeadManagementJSRuntimeExtensions { diff --git a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs index ef9e18bfbc55..fce4271b20f5 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/HeadTagBase.cs @@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Components.Rendering; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { /// <summary> /// Serves as a base for components that represent tags in the HTML head. diff --git a/src/Components/Web.Extensions/src/HeadManagement/Link.cs b/src/Components/Web.Extensions/src/HeadManagement/Link.cs index 6971487332a4..83cc193b747d 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Link.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Link.cs @@ -1,7 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { /// <summary> /// A component that adds a link tag to the HTML head. diff --git a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs index 42daadfa99ef..e5100bbd4e21 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Meta.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Meta.cs @@ -1,7 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { /// <summary> /// A component that adds a meta tag to the HTML head. diff --git a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs index c682e8b40461..3488eb1e156f 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TagElement.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { internal readonly struct TagElement { diff --git a/src/Components/Web.Extensions/src/HeadManagement/Title.cs b/src/Components/Web.Extensions/src/HeadManagement/Title.cs index 8e587de614c0..f7cfd28359bd 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/Title.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/Title.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Components.Rendering; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { /// <summary> /// A component that changes the title of the document. diff --git a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs index 0ca23f970952..c56d550ac294 100644 --- a/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs +++ b/src/Components/Web.Extensions/src/HeadManagement/TitleElement.cs @@ -1,7 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -namespace Microsoft.AspNetCore.Components.Web.Extensions +namespace Microsoft.AspNetCore.Components.Web.Extensions.Head { internal readonly struct TitleElement { diff --git a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj index dcc5f5348a90..9492c3200c85 100644 --- a/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj +++ b/src/Components/Web.Extensions/src/Microsoft.AspNetCore.Components.Web.Extensions.csproj @@ -1,9 +1,8 @@ -<Project Sdk="Microsoft.NET.Sdk.Razor"> +<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework> <Description>A collection of Blazor components for the web.</Description> - <StaticWebAssetBasePath>_content/Microsoft.AspNetCore.Components.Web.Extensions</StaticWebAssetBasePath> <GenerateDocumentationFile>true</GenerateDocumentationFile> <RootNamespace>Microsoft.AspNetCore.Components</RootNamespace> <Nullable>enable</Nullable> diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index ccb9e6880658..32c6455b2002 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -1,11 +1,11 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=53)}([function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return l})),n.d(t,"g",(function(){return f})),n.d(t,"i",(function(){return h})),n.d(t,"j",(function(){return p})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var r=n(0),o=n(6),i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},c="0.0.0-DEV_BUILD",u=function(){function e(){}return e.isRequired=function(e,t){if(null==e)throw new Error("The '"+t+"' argument is required.")},e.isNotEmpty=function(e,t){if(!e||e.match(/^\s*$/))throw new Error("The '"+t+"' argument should not be empty.")},e.isIn=function(e,t,n){if(!(e in t))throw new Error("Unknown "+n+" value: "+e+".")},e}(),l=function(){function e(){}return Object.defineProperty(e,"isBrowser",{get:function(){return"object"==typeof window},enumerable:!0,configurable:!0}),Object.defineProperty(e,"isWebWorker",{get:function(){return"object"==typeof self&&"importScripts"in self},enumerable:!0,configurable:!0}),Object.defineProperty(e,"isNode",{get:function(){return!this.isBrowser&&!this.isWebWorker},enumerable:!0,configurable:!0}),e}();function f(e,t){var n="";return h(e)?(n="Binary data of length "+e.byteLength,t&&(n+=". Content: '"+function(e){var t=new Uint8Array(e),n="";return t.forEach((function(e){n+="0x"+(e<16?"0":"")+e.toString(16)+" "})),n.substr(0,n.length-1)}(e)+"'")):"string"==typeof e&&(n="String data of length "+e.length,t&&(n+=". Content: '"+e+"'")),n}function h(e){return e&&"undefined"!=typeof ArrayBuffer&&(e instanceof ArrayBuffer||e.constructor&&"ArrayBuffer"===e.constructor.name)}function p(e,t,n,o,c,u,l,p,d){return a(this,void 0,void 0,(function(){var a,g,y,b,m,w,E,S;return s(this,(function(s){switch(s.label){case 0:return g={},c?[4,c()]:[3,2];case 1:(y=s.sent())&&((a={}).Authorization="Bearer "+y,g=a),s.label=2;case 2:return b=v(),m=b[0],w=b[1],g[m]=w,e.log(r.a.Trace,"("+t+" transport) sending data. "+f(u,l)+"."),E=h(u)?"arraybuffer":"text",[4,n.post(o,{content:u,headers:i({},g,d),responseType:E,withCredentials:p})];case 3:return S=s.sent(),e.log(r.a.Trace,"("+t+" transport) request complete. Response status: "+S.statusCode+"."),[2]}}))}))}function d(e){return void 0===e?new y(r.a.Information):null===e?o.a.instance:e.log?e:new y(e)}var g=function(){function e(e,t){this.subject=e,this.observer=t}return e.prototype.dispose=function(){var e=this.subject.observers.indexOf(this.observer);e>-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u=function(e,t,n){this.statusCode=e,this.statusText=t,this.content=n},l=function(){function e(){}return e.prototype.get=function(e,t){return this.send(c({},t,{method:"GET",url:e}))},e.prototype.post=function(e,t){return this.send(c({},t,{method:"POST",url:e}))},e.prototype.delete=function(e,t){return this.send(c({},t,{method:"DELETE",url:e}))},e.prototype.getCookieString=function(e){return""},e}(),f=n(0),h=n(1),p=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},g=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},y=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},v=function(e){function t(t){var n=e.call(this)||this;if(n.logger=t,"undefined"==typeof fetch){var r=require;n.jar=new(r("tough-cookie").CookieJar),n.fetchType=r("node-fetch"),n.fetchType=r("fetch-cookie")(n.fetchType,n.jar),n.abortControllerType=r("abort-controller")}else n.fetchType=fetch.bind(self),n.abortControllerType=AbortController;return n}return p(t,e),t.prototype.send=function(e){return g(this,void 0,void 0,(function(){var t,n,r,o,c,l,h,p=this;return y(this,(function(g){switch(g.label){case 0:if(e.abortSignal&&e.abortSignal.aborted)throw new s;if(!e.method)throw new Error("No method defined.");if(!e.url)throw new Error("No url defined.");t=new this.abortControllerType,e.abortSignal&&(e.abortSignal.onabort=function(){t.abort(),n=new s}),r=null,e.timeout&&(o=e.timeout,r=setTimeout((function(){t.abort(),p.logger.log(f.a.Warning,"Timeout from HTTP request."),n=new a}),o)),g.label=1;case 1:return g.trys.push([1,3,4,5]),[4,this.fetchType(e.url,{body:e.content,cache:"no-cache",credentials:!0===e.withCredentials?"include":"same-origin",headers:d({"Content-Type":"text/plain;charset=UTF-8","X-Requested-With":"XMLHttpRequest"},e.headers),method:e.method,mode:"cors",redirect:"manual",signal:t.signal})];case 2:return c=g.sent(),[3,5];case 3:if(l=g.sent(),n)throw n;throw this.logger.log(f.a.Warning,"Error from HTTP request. "+l+"."),l;case 4:return r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null),[7];case 5:if(!c.ok)throw new i(c.statusText,c.status);return[4,function(e,t){var n;switch(t){case"arraybuffer":n=e.arrayBuffer();break;case"text":n=e.text();break;case"blob":case"document":case"json":throw new Error(t+" is not supported.");default:n=e.text()}return n}(c,e.responseType)];case 6:return h=g.sent(),[2,new u(c.status,c.statusText,h)]}}))}))},t.prototype.getCookieString=function(e){var t="";return h.c.isNode&&this.jar&&this.jar.getCookies(e,(function(e,n){return t=n.join("; ")})),t},t}(l);var b,m=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),w=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return m(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?new Promise((function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=void 0===e.withCredentials||e.withCredentials,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var c=e.headers;c&&Object.keys(c).forEach((function(e){o.setRequestHeader(e,c[e])})),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new s)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(44);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t<n.length;t++){n[t].next(e)}},e.prototype.error=function(e){for(var t=0,n=this.observers;t<n.length;t++){var r=n[t];r.error&&r.error(e)}},e.prototype.complete=function(){for(var e=0,t=this.observers;e<t.length;e++){var n=t[e];n.complete&&n.complete()}},e.prototype.subscribe=function(e){return this.observers.push(e),new h.d(this,e)},e}(),k=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},T=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};!function(e){e.Disconnected="Disconnected",e.Connecting="Connecting",e.Connected="Connected",e.Disconnecting="Disconnecting",e.Reconnecting="Reconnecting"}(I||(I={}));var P,x,O=function(){function e(e,t,n,r){var o=this;h.a.isRequired(e,"connection"),h.a.isRequired(t,"logger"),h.a.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.logger=t,this.protocol=n,this.connection=e,this.reconnectPolicy=r,this.handshakeProtocol=new C.a,this.connection.onreceive=function(e){return o.processIncomingData(e)},this.connection.onclose=function(e){return o.connectionClosed(e)},this.callbacks={},this.methods={},this.closedCallbacks=[],this.reconnectingCallbacks=[],this.reconnectedCallbacks=[],this.invocationId=0,this.receivedHandshakeResponse=!1,this.connectionState=I.Disconnected,this.connectionStarted=!1,this.cachedPingMessage=this.protocol.writeMessage({type:b.Ping})}return e.create=function(t,n,r,o){return new e(t,n,r,o)},Object.defineProperty(e.prototype,"state",{get:function(){return this.connectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectionId",{get:function(){return this.connection&&this.connection.connectionId||null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseUrl",{get:function(){return this.connection.baseUrl||""},set:function(e){if(this.connectionState!==I.Disconnected&&this.connectionState!==I.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!e)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=e},enumerable:!0,configurable:!0}),e.prototype.start=function(){return this.startPromise=this.startWithStateTransitions(),this.startPromise},e.prototype.startWithStateTransitions=function(){return k(this,void 0,void 0,(function(){var e;return T(this,(function(t){switch(t.label){case 0:if(this.connectionState!==I.Disconnected)return[2,Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))];this.connectionState=I.Connecting,this.logger.log(f.a.Debug,"Starting HubConnection."),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.startInternal()];case 2:return t.sent(),this.connectionState=I.Connected,this.connectionStarted=!0,this.logger.log(f.a.Debug,"HubConnection connected successfully."),[3,4];case 3:return e=t.sent(),this.connectionState=I.Disconnected,this.logger.log(f.a.Debug,"HubConnection failed to start successfully because of error '"+e+"'."),[2,Promise.reject(e)];case 4:return[2]}}))}))},e.prototype.startInternal=function(){return k(this,void 0,void 0,(function(){var e,t,n,r=this;return T(this,(function(o){switch(o.label){case 0:return this.stopDuringStartError=void 0,this.receivedHandshakeResponse=!1,e=new Promise((function(e,t){r.handshakeResolver=e,r.handshakeRejecter=t})),[4,this.connection.start(this.protocol.transferFormat)];case 1:o.sent(),o.label=2;case 2:return o.trys.push([2,5,,7]),t={protocol:this.protocol.name,version:this.protocol.version},this.logger.log(f.a.Debug,"Sending handshake request."),[4,this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(t))];case 3:return o.sent(),this.logger.log(f.a.Information,"Using HubProtocol '"+this.protocol.name+"'."),this.cleanupTimeout(),this.resetTimeoutPeriod(),this.resetKeepAliveInterval(),[4,e];case 4:if(o.sent(),this.stopDuringStartError)throw this.stopDuringStartError;return[3,7];case 5:return n=o.sent(),this.logger.log(f.a.Debug,"Hub handshake failed with error '"+n+"' during start(). Stopping HubConnection."),this.cleanupTimeout(),this.cleanupPingTimer(),[4,this.connection.stop(n)];case 6:throw o.sent(),n;case 7:return[2]}}))}))},e.prototype.stop=function(){return k(this,void 0,void 0,(function(){var e;return T(this,(function(t){switch(t.label){case 0:return e=this.startPromise,this.stopPromise=this.stopInternal(),[4,this.stopPromise];case 1:t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),[4,e];case 3:return t.sent(),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.stopInternal=function(e){return this.connectionState===I.Disconnected?(this.logger.log(f.a.Debug,"Call to HubConnection.stop("+e+") ignored because it is already in the disconnected state."),Promise.resolve()):this.connectionState===I.Disconnecting?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnecting state."),this.stopPromise):(this.connectionState=I.Disconnecting,this.logger.log(f.a.Debug,"Stopping HubConnection."),this.reconnectDelayHandle?(this.logger.log(f.a.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.reconnectDelayHandle),this.reconnectDelayHandle=void 0,this.completeClose(),Promise.resolve()):(this.cleanupTimeout(),this.cleanupPingTimer(),this.stopDuringStartError=e||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(e)))},e.prototype.stream=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o,i=this.replaceStreamingParams(n),a=i[0],s=i[1],c=this.createStreamInvocation(e,n,s),u=new _;return u.cancelCallback=function(){var e=t.createCancelInvocation(c.invocationId);return delete t.callbacks[c.invocationId],o.then((function(){return t.sendWithProtocol(e)}))},this.callbacks[c.invocationId]=function(e,t){t?u.error(t):e&&(e.type===b.Completion?e.error?u.error(new Error(e.error)):u.complete():u.next(e.item))},o=this.sendWithProtocol(c).catch((function(e){u.error(e),delete t.callbacks[c.invocationId]})),this.launchStreams(a,o),u},e.prototype.sendMessage=function(e){return this.resetKeepAliveInterval(),this.connection.send(e)},e.prototype.sendWithProtocol=function(e){return this.sendMessage(this.protocol.writeMessage(e))},e.prototype.send=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=this.replaceStreamingParams(t),o=r[0],i=r[1],a=this.sendWithProtocol(this.createInvocation(e,t,!0,i));return this.launchStreams(o,a),a},e.prototype.invoke=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o=this.replaceStreamingParams(n),i=o[0],a=o[1],s=this.createInvocation(e,n,!1,a),c=new Promise((function(e,n){t.callbacks[s.invocationId]=function(t,r){r?n(r):t&&(t.type===b.Completion?t.error?n(new Error(t.error)):e(t.result):n(new Error("Unexpected message type: "+t.type)))};var r=t.sendWithProtocol(s).catch((function(e){n(e),delete t.callbacks[s.invocationId]}));t.launchStreams(i,r)}));return c},e.prototype.on=function(e,t){e&&t&&(e=e.toLowerCase(),this.methods[e]||(this.methods[e]=[]),-1===this.methods[e].indexOf(t)&&this.methods[e].push(t))},e.prototype.off=function(e,t){if(e){e=e.toLowerCase();var n=this.methods[e];if(n)if(t){var r=n.indexOf(t);-1!==r&&(n.splice(r,1),0===n.length&&delete this.methods[e])}else delete this.methods[e]}},e.prototype.onclose=function(e){e&&this.closedCallbacks.push(e)},e.prototype.onreconnecting=function(e){e&&this.reconnectingCallbacks.push(e)},e.prototype.onreconnected=function(e){e&&this.reconnectedCallbacks.push(e)},e.prototype.processIncomingData=function(e){if(this.cleanupTimeout(),this.receivedHandshakeResponse||(e=this.processHandshakeResponse(e),this.receivedHandshakeResponse=!0),e)for(var t=0,n=this.protocol.parseMessages(e,this.logger);t<n.length;t++){var r=n[t];switch(r.type){case b.Invocation:this.invokeClientMethod(r);break;case b.StreamItem:case b.Completion:var o=this.callbacks[r.invocationId];o&&(r.type===b.Completion&&delete this.callbacks[r.invocationId],o(r));break;case b.Ping:break;case b.Close:this.logger.log(f.a.Information,"Close message received from server.");var i=r.error?new Error("Server returned an error on close: "+r.error):void 0;!0===r.allowReconnect?this.connection.stop(i):this.stopPromise=this.stopInternal(i);break;default:this.logger.log(f.a.Warning,"Invalid message type: "+r.type+".")}}this.resetTimeoutPeriod()},e.prototype.processHandshakeResponse=function(e){var t,n,r;try{r=(t=this.handshakeProtocol.parseHandshakeResponse(e))[0],n=t[1]}catch(e){var o="Error parsing handshake response: "+e;this.logger.log(f.a.Error,o);var i=new Error(o);throw this.handshakeRejecter(i),i}if(n.error){o="Server returned handshake error: "+n.error;this.logger.log(f.a.Error,o);i=new Error(o);throw this.handshakeRejecter(i),i}return this.logger.log(f.a.Debug,"Server handshake complete."),this.handshakeResolver(),r},e.prototype.resetKeepAliveInterval=function(){var e=this;this.connection.features.inherentKeepAlive||(this.cleanupPingTimer(),this.pingServerHandle=setTimeout((function(){return k(e,void 0,void 0,(function(){return T(this,(function(e){switch(e.label){case 0:if(this.connectionState!==I.Connected)return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.sendMessage(this.cachedPingMessage)];case 2:return e.sent(),[3,4];case 3:return e.sent(),this.cleanupPingTimer(),[3,4];case 4:return[2]}}))}))}),this.keepAliveIntervalInMilliseconds))},e.prototype.resetTimeoutPeriod=function(){var e=this;this.connection.features&&this.connection.features.inherentKeepAlive||(this.timeoutHandle=setTimeout((function(){return e.serverTimeout()}),this.serverTimeoutInMilliseconds))},e.prototype.serverTimeout=function(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))},e.prototype.invokeClientMethod=function(e){var t=this,n=this.methods[e.target.toLowerCase()];if(n){try{n.forEach((function(n){return n.apply(t,e.arguments)}))}catch(t){this.logger.log(f.a.Error,"A callback for the method "+e.target.toLowerCase()+" threw error '"+t+"'.")}if(e.invocationId){var r="Server requested a response, which is not supported in this version of the client.";this.logger.log(f.a.Error,r),this.stopPromise=this.stopInternal(new Error(r))}}else this.logger.log(f.a.Warning,"No client method with the name '"+e.target+"' found.")},e.prototype.connectionClosed=function(e){this.logger.log(f.a.Debug,"HubConnection.connectionClosed("+e+") called while in state "+this.connectionState+"."),this.stopDuringStartError=this.stopDuringStartError||e||new Error("The underlying connection was closed before the hub handshake could complete."),this.handshakeResolver&&this.handshakeResolver(),this.cancelCallbacksWithError(e||new Error("Invocation canceled due to the underlying connection being closed.")),this.cleanupTimeout(),this.cleanupPingTimer(),this.connectionState===I.Disconnecting?this.completeClose(e):this.connectionState===I.Connected&&this.reconnectPolicy?this.reconnect(e):this.connectionState===I.Connected&&this.completeClose(e)},e.prototype.completeClose=function(e){var t=this;if(this.connectionStarted){this.connectionState=I.Disconnected,this.connectionStarted=!1;try{this.closedCallbacks.forEach((function(n){return n.apply(t,[e])}))}catch(t){this.logger.log(f.a.Error,"An onclose callback called with error '"+e+"' threw error '"+t+"'.")}}},e.prototype.reconnect=function(e){return k(this,void 0,void 0,(function(){var t,n,r,o,i,a=this;return T(this,(function(s){switch(s.label){case 0:if(t=Date.now(),n=0,r=void 0!==e?e:new Error("Attempting to reconnect due to a unknown error."),null===(o=this.getNextRetryDelay(n++,0,r)))return this.logger.log(f.a.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),this.completeClose(e),[2];if(this.connectionState=I.Reconnecting,e?this.logger.log(f.a.Information,"Connection reconnecting because of error '"+e+"'."):this.logger.log(f.a.Information,"Connection reconnecting."),this.onreconnecting){try{this.reconnectingCallbacks.forEach((function(t){return t.apply(a,[e])}))}catch(t){this.logger.log(f.a.Error,"An onreconnecting callback called with error '"+e+"' threw error '"+t+"'.")}if(this.connectionState!==I.Reconnecting)return this.logger.log(f.a.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting."),[2]}s.label=1;case 1:return null===o?[3,7]:(this.logger.log(f.a.Information,"Reconnect attempt number "+n+" will start in "+o+" ms."),[4,new Promise((function(e){a.reconnectDelayHandle=setTimeout(e,o)}))]);case 2:if(s.sent(),this.reconnectDelayHandle=void 0,this.connectionState!==I.Reconnecting)return this.logger.log(f.a.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting."),[2];s.label=3;case 3:return s.trys.push([3,5,,6]),[4,this.startInternal()];case 4:if(s.sent(),this.connectionState=I.Connected,this.logger.log(f.a.Information,"HubConnection reconnected successfully."),this.onreconnected)try{this.reconnectedCallbacks.forEach((function(e){return e.apply(a,[a.connection.connectionId])}))}catch(e){this.logger.log(f.a.Error,"An onreconnected callback called with connectionId '"+this.connection.connectionId+"; threw error '"+e+"'.")}return[2];case 5:return i=s.sent(),this.logger.log(f.a.Information,"Reconnect attempt failed because of error '"+i+"'."),this.connectionState!==I.Reconnecting?(this.logger.log(f.a.Debug,"Connection left the reconnecting state during reconnect attempt. Done reconnecting."),[2]):(r=i instanceof Error?i:new Error(i.toString()),o=this.getNextRetryDelay(n++,Date.now()-t,r),[3,6]);case 6:return[3,1];case 7:return this.logger.log(f.a.Information,"Reconnect retries have been exhausted after "+(Date.now()-t)+" ms and "+n+" failed attempts. Connection disconnecting."),this.completeClose(),[2]}}))}))},e.prototype.getNextRetryDelay=function(e,t,n){try{return this.reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:n})}catch(n){return this.logger.log(f.a.Error,"IRetryPolicy.nextRetryDelayInMilliseconds("+e+", "+t+") threw error '"+n+"'."),null}},e.prototype.cancelCallbacksWithError=function(e){var t=this.callbacks;this.callbacks={},Object.keys(t).forEach((function(n){(0,t[n])(null,e)}))},e.prototype.cleanupPingTimer=function(){this.pingServerHandle&&clearTimeout(this.pingServerHandle)},e.prototype.cleanupTimeout=function(){this.timeoutHandle&&clearTimeout(this.timeoutHandle)},e.prototype.createInvocation=function(e,t,n,r){if(n)return 0!==r.length?{arguments:t,streamIds:r,target:e,type:b.Invocation}:{arguments:t,target:e,type:b.Invocation};var o=this.invocationId;return this.invocationId++,0!==r.length?{arguments:t,invocationId:o.toString(),streamIds:r,target:e,type:b.Invocation}:{arguments:t,invocationId:o.toString(),target:e,type:b.Invocation}},e.prototype.launchStreams=function(e,t){var n=this;if(0!==e.length){t||(t=Promise.resolve());var r=function(r){e[r].subscribe({complete:function(){t=t.then((function(){return n.sendWithProtocol(n.createCompletionMessage(r))}))},error:function(e){var o;o=e instanceof Error?e.message:e&&e.toString?e.toString():"Unknown error",t=t.then((function(){return n.sendWithProtocol(n.createCompletionMessage(r,o))}))},next:function(e){t=t.then((function(){return n.sendWithProtocol(n.createStreamItemMessage(r,e))}))}})};for(var o in e)r(o)}},e.prototype.replaceStreamingParams=function(e){for(var t=[],n=[],r=0;r<e.length;r++){var o=e[r];if(this.isObservable(o)){var i=this.invocationId;this.invocationId++,t[i]=o,n.push(i.toString()),e.splice(r,1)}}return[t,n]},e.prototype.isObservable=function(e){return e&&e.subscribe&&"function"==typeof e.subscribe},e.prototype.createStreamInvocation=function(e,t,n){var r=this.invocationId;return this.invocationId++,0!==n.length?{arguments:t,invocationId:r.toString(),streamIds:n,target:e,type:b.StreamInvocation}:{arguments:t,invocationId:r.toString(),target:e,type:b.StreamInvocation}},e.prototype.createCancelInvocation=function(e){return{invocationId:e,type:b.CancelInvocation}},e.prototype.createStreamItemMessage=function(e,t){return{invocationId:e,item:t,type:b.StreamItem}},e.prototype.createCompletionMessage=function(e,t,n){return t?{error:t,invocationId:e,type:b.Completion}:{invocationId:e,result:n,type:b.Completion}},e}(),R=[0,2e3,1e4,3e4,null],L=function(){function e(e){this.retryDelays=void 0!==e?e.concat([null]):R}return e.prototype.nextRetryDelayInMilliseconds=function(e){return this.retryDelays[e.previousRetryCount]},e}();!function(e){e[e.None=0]="None",e[e.WebSockets=1]="WebSockets",e[e.ServerSentEvents=2]="ServerSentEvents",e[e.LongPolling=4]="LongPolling"}(P||(P={})),function(e){e[e.Text=1]="Text",e[e.Binary=2]="Binary"}(x||(x={}));var D=function(){function e(){this.isAborted=!1,this.onabort=null}return e.prototype.abort=function(){this.isAborted||(this.isAborted=!0,this.onabort&&this.onabort())},Object.defineProperty(e.prototype,"signal",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aborted",{get:function(){return this.isAborted},enumerable:!0,configurable:!0}),e}(),M=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},j=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},A=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},B=function(){function e(e,t,n,r,o,i){this.httpClient=e,this.accessTokenFactory=t,this.logger=n,this.pollAbort=new D,this.logMessageContent=r,this.withCredentials=o,this.headers=i,this.running=!1,this.onreceive=null,this.onclose=null}return Object.defineProperty(e.prototype,"pollAborted",{get:function(){return this.pollAbort.aborted},enumerable:!0,configurable:!0}),e.prototype.connect=function(e,t){return j(this,void 0,void 0,(function(){var n,r,o,a,s,c,u,l,p;return A(this,(function(d){switch(d.label){case 0:if(h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.url=e,this.logger.log(f.a.Trace,"(LongPolling transport) Connecting."),t===x.Binary&&"undefined"!=typeof XMLHttpRequest&&"string"!=typeof(new XMLHttpRequest).responseType)throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");return r=Object(h.h)(),o=r[0],a=r[1],s=M(((n={})[o]=a,n),this.headers),c={abortSignal:this.pollAbort.signal,headers:s,timeout:1e5,withCredentials:this.withCredentials},t===x.Binary&&(c.responseType="arraybuffer"),[4,this.getAccessToken()];case 1:return u=d.sent(),this.updateHeaderToken(c,u),l=e+"&_="+Date.now(),this.logger.log(f.a.Trace,"(LongPolling transport) polling: "+l+"."),[4,this.httpClient.get(l,c)];case 2:return 200!==(p=d.sent()).statusCode?(this.logger.log(f.a.Error,"(LongPolling transport) Unexpected response code: "+p.statusCode+"."),this.closeError=new i(p.statusText||"",p.statusCode),this.running=!1):this.running=!0,this.receiving=this.poll(this.url,c),[2]}}))}))},e.prototype.getAccessToken=function(){return j(this,void 0,void 0,(function(){return A(this,(function(e){switch(e.label){case 0:return this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:return[2,e.sent()];case 2:return[2,null]}}))}))},e.prototype.updateHeaderToken=function(e,t){e.headers||(e.headers={}),t?e.headers.Authorization="Bearer "+t:e.headers.Authorization&&delete e.headers.Authorization},e.prototype.poll=function(e,t){return j(this,void 0,void 0,(function(){var n,r,o,s;return A(this,(function(c){switch(c.label){case 0:c.trys.push([0,,8,9]),c.label=1;case 1:return this.running?[4,this.getAccessToken()]:[3,7];case 2:n=c.sent(),this.updateHeaderToken(t,n),c.label=3;case 3:return c.trys.push([3,5,,6]),r=e+"&_="+Date.now(),this.logger.log(f.a.Trace,"(LongPolling transport) polling: "+r+"."),[4,this.httpClient.get(r,t)];case 4:return 204===(o=c.sent()).statusCode?(this.logger.log(f.a.Information,"(LongPolling transport) Poll terminated by server."),this.running=!1):200!==o.statusCode?(this.logger.log(f.a.Error,"(LongPolling transport) Unexpected response code: "+o.statusCode+"."),this.closeError=new i(o.statusText||"",o.statusCode),this.running=!1):o.content?(this.logger.log(f.a.Trace,"(LongPolling transport) data received. "+Object(h.g)(o.content,this.logMessageContent)+"."),this.onreceive&&this.onreceive(o.content)):this.logger.log(f.a.Trace,"(LongPolling transport) Poll timed out, reissuing."),[3,6];case 5:return s=c.sent(),this.running?s instanceof a?this.logger.log(f.a.Trace,"(LongPolling transport) Poll timed out, reissuing."):(this.closeError=s,this.running=!1):this.logger.log(f.a.Trace,"(LongPolling transport) Poll errored after shutdown: "+s.message),[3,6];case 6:return[3,1];case 7:return[3,9];case 8:return this.logger.log(f.a.Trace,"(LongPolling transport) Polling complete."),this.pollAborted||this.raiseOnClose(),[7];case 9:return[2]}}))}))},e.prototype.send=function(e){return j(this,void 0,void 0,(function(){return A(this,(function(t){return this.running?[2,Object(h.j)(this.logger,"LongPolling",this.httpClient,this.url,this.accessTokenFactory,e,this.logMessageContent,this.withCredentials,this.headers)]:[2,Promise.reject(new Error("Cannot send until the transport is connected"))]}))}))},e.prototype.stop=function(){return j(this,void 0,void 0,(function(){var e,t,n,r,o,i;return A(this,(function(a){switch(a.label){case 0:this.logger.log(f.a.Trace,"(LongPolling transport) Stopping polling."),this.running=!1,this.pollAbort.abort(),a.label=1;case 1:return a.trys.push([1,,5,6]),[4,this.receiving];case 2:return a.sent(),this.logger.log(f.a.Trace,"(LongPolling transport) sending DELETE request to "+this.url+"."),e={},t=Object(h.h)(),n=t[0],r=t[1],e[n]=r,o={headers:M({},e,this.headers),withCredentials:this.withCredentials},[4,this.getAccessToken()];case 3:return i=a.sent(),this.updateHeaderToken(o,i),[4,this.httpClient.delete(this.url,o)];case 4:return a.sent(),this.logger.log(f.a.Trace,"(LongPolling transport) DELETE request sent."),[3,6];case 5:return this.logger.log(f.a.Trace,"(LongPolling transport) Stop finished."),this.raiseOnClose(),[7];case 6:return[2]}}))}))},e.prototype.raiseOnClose=function(){if(this.onclose){var e="(LongPolling transport) Firing onclose event.";this.closeError&&(e+=" Error: "+this.closeError),this.logger.log(f.a.Trace,e),this.onclose(this.closeError)}},e}(),N=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},U=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},F=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},H=function(){function e(e,t,n,r,o,i,a){this.httpClient=e,this.accessTokenFactory=t,this.logger=n,this.logMessageContent=r,this.withCredentials=i,this.eventSourceConstructor=o,this.headers=a,this.onreceive=null,this.onclose=null}return e.prototype.connect=function(e,t){return U(this,void 0,void 0,(function(){var n,r=this;return F(this,(function(o){switch(o.label){case 0:return h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.logger.log(f.a.Trace,"(SSE transport) Connecting."),this.url=e,this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=o.sent())&&(e+=(e.indexOf("?")<0?"?":"&")+"access_token="+encodeURIComponent(n)),o.label=2;case 2:return[2,new Promise((function(n,o){var i=!1;if(t===x.Text){var a;if(h.c.isBrowser||h.c.isWebWorker)a=new r.eventSourceConstructor(e,{withCredentials:r.withCredentials});else{var s=r.httpClient.getCookieString(e),c={};c.Cookie=s;var u=Object(h.h)(),l=u[0],p=u[1];c[l]=p,a=new r.eventSourceConstructor(e,{withCredentials:r.withCredentials,headers:N({},c,r.headers)})}try{a.onmessage=function(e){if(r.onreceive)try{r.logger.log(f.a.Trace,"(SSE transport) data received. "+Object(h.g)(e.data,r.logMessageContent)+"."),r.onreceive(e.data)}catch(e){return void r.close(e)}},a.onerror=function(e){var t=new Error(e.data||"Error occurred");i?r.close(t):o(t)},a.onopen=function(){r.logger.log(f.a.Information,"SSE connected to "+r.url),r.eventSource=a,i=!0,n()}}catch(e){return void o(e)}}else o(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))]}}))}))},e.prototype.send=function(e){return U(this,void 0,void 0,(function(){return F(this,(function(t){return this.eventSource?[2,Object(h.j)(this.logger,"SSE",this.httpClient,this.url,this.accessTokenFactory,e,this.logMessageContent,this.withCredentials,this.headers)]:[2,Promise.reject(new Error("Cannot send until the transport is connected"))]}))}))},e.prototype.stop=function(){return this.close(),Promise.resolve()},e.prototype.close=function(e){this.eventSource&&(this.eventSource.close(),this.eventSource=void 0,this.onclose&&this.onclose(e))},e}(),q=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},W=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},z=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},Y=function(){function e(e,t,n,r,o,i){this.logger=n,this.accessTokenFactory=t,this.logMessageContent=r,this.webSocketConstructor=o,this.httpClient=e,this.onreceive=null,this.onclose=null,this.headers=i}return e.prototype.connect=function(e,t){return W(this,void 0,void 0,(function(){var n,r=this;return z(this,(function(o){switch(o.label){case 0:return h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.logger.log(f.a.Trace,"(WebSockets transport) Connecting."),this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=o.sent())&&(e+=(e.indexOf("?")<0?"?":"&")+"access_token="+encodeURIComponent(n)),o.label=2;case 2:return[2,new Promise((function(n,o){var i;e=e.replace(/^http/,"ws");var a=r.httpClient.getCookieString(e),s=!1;if(h.c.isNode){var c={},u=Object(h.h)(),l=u[0],p=u[1];c[l]=p,a&&(c.Cookie=""+a),i=new r.webSocketConstructor(e,void 0,{headers:q({},c,r.headers)})}i||(i=new r.webSocketConstructor(e)),t===x.Binary&&(i.binaryType="arraybuffer"),i.onopen=function(t){r.logger.log(f.a.Information,"WebSocket connected to "+e+"."),r.webSocket=i,s=!0,n()},i.onerror=function(e){var t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:new Error("There was an error with the transport."),o(t)},i.onmessage=function(e){if(r.logger.log(f.a.Trace,"(WebSockets transport) data received. "+Object(h.g)(e.data,r.logMessageContent)+"."),r.onreceive)try{r.onreceive(e.data)}catch(e){return void r.close(e)}},i.onclose=function(e){if(s)r.close(e);else{var t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:new Error("There was an error with the transport."),o(t)}}}))]}}))}))},e.prototype.send=function(e){return this.webSocket&&this.webSocket.readyState===this.webSocketConstructor.OPEN?(this.logger.log(f.a.Trace,"(WebSockets transport) sending data. "+Object(h.g)(e,this.logMessageContent)+"."),this.webSocket.send(e),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")},e.prototype.stop=function(){return this.webSocket&&this.close(void 0),Promise.resolve()},e.prototype.close=function(e){this.webSocket&&(this.webSocket.onclose=function(){},this.webSocket.onmessage=function(){},this.webSocket.onerror=function(){},this.webSocket.close(),this.webSocket=void 0),this.logger.log(f.a.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this.isCloseEvent(e)||!1!==e.wasClean&&1e3===e.code?e instanceof Error?this.onclose(e):this.onclose():this.onclose(new Error("WebSocket closed with status code: "+e.code+" ("+e.reason+").")))},e.prototype.isCloseEvent=function(e){return e&&"boolean"==typeof e.wasClean&&"number"==typeof e.code},e}(),J=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},K=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},V=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},X=function(){function e(e,t){if(void 0===t&&(t={}),this.features={},this.negotiateVersion=1,h.a.isRequired(e,"url"),this.logger=Object(h.f)(t.logger),this.baseUrl=this.resolveUrl(e),(t=t||{}).logMessageContent=void 0!==t.logMessageContent&&t.logMessageContent,"boolean"!=typeof t.withCredentials&&void 0!==t.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");t.withCredentials=void 0===t.withCredentials||t.withCredentials;var n=null,r=null;if(h.c.isNode){var o=require;n=o("ws"),r=o("eventsource")}h.c.isNode||"undefined"==typeof WebSocket||t.WebSocket?h.c.isNode&&!t.WebSocket&&n&&(t.WebSocket=n):t.WebSocket=WebSocket,h.c.isNode||"undefined"==typeof EventSource||t.EventSource?h.c.isNode&&!t.EventSource&&void 0!==r&&(t.EventSource=r):t.EventSource=EventSource,this.httpClient=t.httpClient||new S(this.logger),this.connectionState="Disconnected",this.connectionStarted=!1,this.options=t,this.onreceive=null,this.onclose=null}return e.prototype.start=function(e){return K(this,void 0,void 0,(function(){var t;return V(this,(function(n){switch(n.label){case 0:return e=e||x.Binary,h.a.isIn(e,x,"transferFormat"),this.logger.log(f.a.Debug,"Starting connection with transfer format '"+x[e]+"'."),"Disconnected"!==this.connectionState?[2,Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."))]:(this.connectionState="Connecting",this.startInternalPromise=this.startInternal(e),[4,this.startInternalPromise]);case 1:return n.sent(),"Disconnecting"!==this.connectionState?[3,3]:(t="Failed to start the HttpConnection before stop() was called.",this.logger.log(f.a.Error,t),[4,this.stopPromise]);case 2:return n.sent(),[2,Promise.reject(new Error(t))];case 3:if("Connected"!==this.connectionState)return t="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!",this.logger.log(f.a.Error,t),[2,Promise.reject(new Error(t))];n.label=4;case 4:return this.connectionStarted=!0,[2]}}))}))},e.prototype.send=function(e){return"Connected"!==this.connectionState?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this.sendQueue||(this.sendQueue=new G(this.transport)),this.sendQueue.send(e))},e.prototype.stop=function(e){return K(this,void 0,void 0,(function(){var t=this;return V(this,(function(n){switch(n.label){case 0:return"Disconnected"===this.connectionState?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnected state."),[2,Promise.resolve()]):"Disconnecting"===this.connectionState?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnecting state."),[2,this.stopPromise]):(this.connectionState="Disconnecting",this.stopPromise=new Promise((function(e){t.stopPromiseResolver=e})),[4,this.stopInternal(e)]);case 1:return n.sent(),[4,this.stopPromise];case 2:return n.sent(),[2]}}))}))},e.prototype.stopInternal=function(e){return K(this,void 0,void 0,(function(){var t;return V(this,(function(n){switch(n.label){case 0:this.stopError=e,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.startInternalPromise];case 2:return n.sent(),[3,4];case 3:return n.sent(),[3,4];case 4:if(!this.transport)return[3,9];n.label=5;case 5:return n.trys.push([5,7,,8]),[4,this.transport.stop()];case 6:return n.sent(),[3,8];case 7:return t=n.sent(),this.logger.log(f.a.Error,"HttpConnection.transport.stop() threw error '"+t+"'."),this.stopConnection(),[3,8];case 8:return this.transport=void 0,[3,10];case 9:this.logger.log(f.a.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed."),this.stopConnection(),n.label=10;case 10:return[2]}}))}))},e.prototype.startInternal=function(e){return K(this,void 0,void 0,(function(){var t,n,r,o,i,a;return V(this,(function(s){switch(s.label){case 0:t=this.baseUrl,this.accessTokenFactory=this.options.accessTokenFactory,s.label=1;case 1:return s.trys.push([1,12,,13]),this.options.skipNegotiation?this.options.transport!==P.WebSockets?[3,3]:(this.transport=this.constructTransport(P.WebSockets),[4,this.startTransport(t,e)]):[3,5];case 2:return s.sent(),[3,4];case 3:throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");case 4:return[3,11];case 5:n=null,r=0,o=function(){var e;return V(this,(function(o){switch(o.label){case 0:return[4,i.getNegotiationResponse(t)];case 1:if(n=o.sent(),"Disconnecting"===i.connectionState||"Disconnected"===i.connectionState)throw new Error("The connection was stopped during negotiation.");if(n.error)throw new Error(n.error);if(n.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");return n.url&&(t=n.url),n.accessToken&&(e=n.accessToken,i.accessTokenFactory=function(){return e}),r++,[2]}}))},i=this,s.label=6;case 6:return[5,o()];case 7:s.sent(),s.label=8;case 8:if(n.url&&r<100)return[3,6];s.label=9;case 9:if(100===r&&n.url)throw new Error("Negotiate redirection limit exceeded.");return[4,this.createTransport(t,this.options.transport,n,e)];case 10:s.sent(),s.label=11;case 11:return this.transport instanceof B&&(this.features.inherentKeepAlive=!0),"Connecting"===this.connectionState&&(this.logger.log(f.a.Debug,"The HttpConnection connected successfully."),this.connectionState="Connected"),[3,13];case 12:return a=s.sent(),this.logger.log(f.a.Error,"Failed to start the connection: "+a),this.connectionState="Disconnected",this.transport=void 0,[2,Promise.reject(a)];case 13:return[2]}}))}))},e.prototype.getNegotiationResponse=function(e){return K(this,void 0,void 0,(function(){var t,n,r,o,i,a,s,c,u;return V(this,(function(l){switch(l.label){case 0:return t={},this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=l.sent())&&(t.Authorization="Bearer "+n),l.label=2;case 2:r=Object(h.h)(),o=r[0],i=r[1],t[o]=i,a=this.resolveNegotiateUrl(e),this.logger.log(f.a.Debug,"Sending negotiation request: "+a+"."),l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.httpClient.post(a,{content:"",headers:J({},t,this.options.headers),withCredentials:this.options.withCredentials})];case 4:return 200!==(s=l.sent()).statusCode?[2,Promise.reject(new Error("Unexpected status code returned from negotiate '"+s.statusCode+"'"))]:((!(c=JSON.parse(s.content)).negotiateVersion||c.negotiateVersion<1)&&(c.connectionToken=c.connectionId),[2,c]);case 5:return u=l.sent(),this.logger.log(f.a.Error,"Failed to complete negotiation with the server: "+u),[2,Promise.reject(u)];case 6:return[2]}}))}))},e.prototype.createConnectUrl=function(e,t){return t?e+(-1===e.indexOf("?")?"?":"&")+"id="+t:e},e.prototype.createTransport=function(e,t,n,r){return K(this,void 0,void 0,(function(){var o,i,a,s,c,u,l,h,p,d,g;return V(this,(function(y){switch(y.label){case 0:return o=this.createConnectUrl(e,n.connectionToken),this.isITransport(t)?(this.logger.log(f.a.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=t,[4,this.startTransport(o,r)]):[3,2];case 1:return y.sent(),this.connectionId=n.connectionId,[2];case 2:i=[],a=n.availableTransports||[],s=n,c=0,u=a,y.label=3;case 3:return c<u.length?(l=u[c],(h=this.resolveTransportOrError(l,t,r))instanceof Error?(i.push(l.transport+" failed: "+h),[3,12]):[3,4]):[3,13];case 4:if(!this.isITransport(h))return[3,12];if(this.transport=h,s)return[3,9];y.label=5;case 5:return y.trys.push([5,7,,8]),[4,this.getNegotiationResponse(e)];case 6:return s=y.sent(),[3,8];case 7:return p=y.sent(),[2,Promise.reject(p)];case 8:o=this.createConnectUrl(e,s.connectionToken),y.label=9;case 9:return y.trys.push([9,11,,12]),[4,this.startTransport(o,r)];case 10:return y.sent(),this.connectionId=s.connectionId,[2];case 11:return d=y.sent(),this.logger.log(f.a.Error,"Failed to start the transport '"+l.transport+"': "+d),s=void 0,i.push(l.transport+" failed: "+d),"Connecting"!==this.connectionState?(g="Failed to select transport before stop() was called.",this.logger.log(f.a.Debug,g),[2,Promise.reject(new Error(g))]):[3,12];case 12:return c++,[3,3];case 13:return i.length>0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o<i.length;o++){var a=i[o];n.set(new Uint8Array(a),r),r+=a.byteLength}return n.buffer},e}(),Q=function(){function e(){var e=this;this.promise=new Promise((function(t,n){var r;return r=[t,n],e.resolver=r[0],e.rejecter=r[1],r}))}return e.prototype.resolve=function(){this.resolver()},e.prototype.reject=function(e){this.rejecter(e)},e}(),$=n(6),Z=n(7),ee=function(){function e(){this.name="json",this.version=1,this.transferFormat=x.Text}return e.prototype.parseMessages=function(e,t){if("string"!=typeof e)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!e)return[];null===t&&(t=$.a.instance);for(var n=[],r=0,o=Z.a.parse(e);r<o.length;r++){var i=o[r],a=JSON.parse(i);if("number"!=typeof a.type)throw new Error("Invalid payload.");switch(a.type){case b.Invocation:this.isInvocationMessage(a);break;case b.StreamItem:this.isStreamItemMessage(a);break;case b.Completion:this.isCompletionMessage(a);break;case b.Ping:case b.Close:break;default:t.log(f.a.Information,"Unknown message type '"+a.type+"' ignored.");continue}n.push(a)}return n},e.prototype.writeMessage=function(e){return Z.a.write(JSON.stringify(e))},e.prototype.isInvocationMessage=function(e){this.assertNotEmptyString(e.target,"Invalid payload for Invocation message."),void 0!==e.invocationId&&this.assertNotEmptyString(e.invocationId,"Invalid payload for Invocation message.")},e.prototype.isStreamItemMessage=function(e){if(this.assertNotEmptyString(e.invocationId,"Invalid payload for StreamItem message."),void 0===e.item)throw new Error("Invalid payload for StreamItem message.")},e.prototype.isCompletionMessage=function(e){if(e.result&&e.error)throw new Error("Invalid payload for Completion message.");!e.result&&e.error&&this.assertNotEmptyString(e.error,"Invalid payload for Completion message."),this.assertNotEmptyString(e.invocationId,"Invalid payload for Completion message.")},e.prototype.assertNotEmptyString=function(e,t){if("string"!=typeof e||""===e)throw new Error(t)},e}(),te=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ne={trace:f.a.Trace,debug:f.a.Debug,info:f.a.Information,information:f.a.Information,warn:f.a.Warning,warning:f.a.Warning,error:f.a.Error,critical:f.a.Critical,none:f.a.None};var re=function(){function e(){}return e.prototype.configureLogging=function(e){if(h.a.isRequired(e,"logging"),void 0!==e.log)this.logger=e;else if("string"==typeof e){var t=function(e){var t=ne[e.toLowerCase()];if(void 0!==t)return t;throw new Error("Unknown log level: "+e)}(e);this.logger=new h.b(t)}else this.logger=new h.b(e);return this},e.prototype.withUrl=function(e,t){return h.a.isRequired(e,"url"),h.a.isNotEmpty(e,"url"),this.url=e,this.httpConnectionOptions=te({},this.httpConnectionOptions,"object"==typeof t?t:{transport:t}),this},e.prototype.withHubProtocol=function(e){return h.a.isRequired(e,"protocol"),this.protocol=e,this},e.prototype.withAutomaticReconnect=function(e){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return e?Array.isArray(e)?this.reconnectPolicy=new L(e):this.reconnectPolicy=e:this.reconnectPolicy=new L,this},e.prototype.build=function(){var e=this.httpConnectionOptions||{};if(void 0===e.logger&&(e.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");var t=new X(this.url,e);return O.create(t,this.logger||$.a.instance,this.protocol||new ee,this.reconnectPolicy)},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function c(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return s(e,t,null,n)},e.invokeMethodAsync=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return c(e,t,null,n)},e.jsCallDispatcher={findJSFunction:p,invokeJSFromDotNet:function(e,t){var n=p(e).apply(null,f(t));return null==n?null:JSON.stringify(n,g)},beginInvokeJSFromDotNet:function(e,t,n){var r=new Promise((function(e){e(p(t).apply(null,f(n)))}));e&&r.then((function(t){return u().endInvokeJSFromDotNet(e,!0,JSON.stringify([e,!0,t],g))}),(function(t){return u().endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,h(t)]))}))},endInvokeDotNetFromJS:function(e,t,n){var r=t?n:new Error(n);l(parseInt(e),t,r)}};var d=function(){function e(e){this._id=e}return e.prototype.invokeMethod=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return s(null,e,this._id,t)},e.prototype.invokeMethodAsync=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return c(null,e,this._id,t)},e.prototype.dispose=function(){c(null,"__Dispose",this._id,null).catch((function(e){return console.error(e)}))},e.prototype.serializeAsArg=function(){return{__dotNetObject:this._id}},e}();function g(e,t){return t instanceof d?t.serializeAsArg():t}a((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__dotNetObject")?new d(t.__dotNetObject):t}))}(t.DotNet||(t.DotNet={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(24),n(18);var r=n(25),o=n(13),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h<c;h++){var p=t.updatedComponentsEntry(s,h),d=f.componentId(p),g=f.edits(p);n.updateComponent(t,d,g,l)}var y=t.disposedComponentIds(),v=r.values(y),b=r.count(y);for(h=0;h<b;h++){d=t.disposedComponentIdsEntry(v,h);n.disposeComponent(d)}var m=t.disposedEventHandlerIds(),w=r.values(m),E=r.count(m);for(h=0;h<E;h++){var S=t.disposedEventHandlerIdsEntry(w,h);n.disposeEventHandler(S)}a&&(a=!1,window.scrollTo&&window.scrollTo(0,0))},t.resetScrollAfterNextBatch=function(){a=!0}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var o=0,i=!!localStorage.blazorProfilingEnabled,a=[],s=[];function c(e){if(o){var t=performance.now();s.push(e),a.push({name:e,type:"start",timestamp:t})}}function u(e){if(o){var t=performance.now(),n=s.pop();if(!n)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the stack was empty.");if(n!==e)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the top stack item was '"+f(n)+"'.");a.push({name:e,type:"end",timestamp:t})}}function l(e){var t=document.createElement("div");t.textContent=e,t.setAttribute("style","position: absolute; z-index: 99999; font-family: 'Sans Serif'; top: 0; left: 0; padding: 4px; font-size: 12px; background-color: purple; color: white;"),document.body.appendChild(t),setTimeout((function(){return document.body.removeChild(t)}),3e3)}function f(e){return"string"==typeof e?e:BINDING.conv_string(e)}t.setProfilingEnabled=function(e){localStorage.blazorProfilingEnabled=!1!==e,location.reload()},t.initializeProfiling=function(e){if(i){r=e||function(){};var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";console.info("Profiling hotkey: Shift+"+t+"+P (when application has focus)"),document.addEventListener("keydown",(function(e){var t,n,i,c;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyP"===e.code&&(o?(l("Finished capturing performance profile"),t=a.map((function(e){return{name:f(e.name),cat:"PERF",ph:"start"===e.type?"B":"E",ts:1e3*(e.timestamp-o),pid:0,tid:0}})),n=JSON.stringify(t),i=(new TextEncoder).encode(n),(c=document.createElement("a")).href=URL.createObjectURL(new Blob([i])),c.setAttribute("download","trace.json"),c.click(),URL.revokeObjectURL(c.href),s.length=0,a.length=0,o=0,r(!1)):(l("Started capturing performance profile..."),r(!0),o=performance.now()))}))}},t.profileStart=c,t.profileEnd=u,window._blazorProfileStart=c,window._blazorProfileEnd=u},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),n(3);var i,a=n(4),s=!1,c=!1,u=null;function l(e,t,n){void 0===n&&(n=!1);var r=p(e);if(!t&&d(r))f(r,!1,n);else if(t&&location.href===e){var o=e+"?";history.replaceState(null,"",o),location.replace(e)}else n?history.replaceState(null,"",r):location.href=e}function f(e,t,n){void 0===n&&(n=!1),a.resetScrollAfterNextBatch(),n?history.replaceState(null,"",e):history.pushState(null,"",e),h(t)}function h(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return u?[4,u(location.href,e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))}function p(e){return(i=i||document.createElement("a")).href=e,i.href}function d(e){var t,n=(t=document.baseURI).substr(0,t.lastIndexOf("/")+1);return e.startsWith(n)}t.internalFunctions={listenForNavigationEvents:function(e){if(u=e,c)return;c=!0,window.addEventListener("popstate",(function(){return h(!1)}))},enableNavigationInterception:function(){s=!0},navigateTo:l,getBaseURI:function(){return document.baseURI},getLocationHref:function(){return location.href}},t.attachToEventDelegator=function(e){e.notifyAfterClick((function(e){if(s&&0===e.button&&!function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e)&&!e.defaultPrevented){var t=function e(t,n){return t?t.tagName===n?t:e(t.parentElement,n):null}(e.target,"A");if(t&&t.hasAttribute("href")){var n=t.getAttribute("target");if(!(!n||"_self"===n))return;var r=p(t.getAttribute("href"));d(r)&&(e.preventDefault(),f(r,!0))}}}))},t.navigateTo=l,t.toAbsoluteUri=p},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(22),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(20);i.inherits=n(16);var a=n(37),s=n(42);i.inherits(f,a);for(var c=o(s.prototype),u=0;u<c.length;u++){var l=c[u];f.prototype[l]||(f.prototype[l]=s.prototype[l])}function f(e){if(!(this instanceof f))return new f(e);a.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",h)}function h(){this.allowHalfOpen||this._writableState.ended||r.nextTick(p,this)}function p(e){e.end()}Object.defineProperty(f.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(f.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),f.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";(function(e){ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=53)}([function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return l})),n.d(t,"g",(function(){return f})),n.d(t,"i",(function(){return h})),n.d(t,"j",(function(){return p})),n.d(t,"f",(function(){return d})),n.d(t,"d",(function(){return g})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var r=n(0),o=n(6),i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},c="0.0.0-DEV_BUILD",u=function(){function e(){}return e.isRequired=function(e,t){if(null==e)throw new Error("The '"+t+"' argument is required.")},e.isNotEmpty=function(e,t){if(!e||e.match(/^\s*$/))throw new Error("The '"+t+"' argument should not be empty.")},e.isIn=function(e,t,n){if(!(e in t))throw new Error("Unknown "+n+" value: "+e+".")},e}(),l=function(){function e(){}return Object.defineProperty(e,"isBrowser",{get:function(){return"object"==typeof window},enumerable:!0,configurable:!0}),Object.defineProperty(e,"isWebWorker",{get:function(){return"object"==typeof self&&"importScripts"in self},enumerable:!0,configurable:!0}),Object.defineProperty(e,"isNode",{get:function(){return!this.isBrowser&&!this.isWebWorker},enumerable:!0,configurable:!0}),e}();function f(e,t){var n="";return h(e)?(n="Binary data of length "+e.byteLength,t&&(n+=". Content: '"+function(e){var t=new Uint8Array(e),n="";return t.forEach((function(e){n+="0x"+(e<16?"0":"")+e.toString(16)+" "})),n.substr(0,n.length-1)}(e)+"'")):"string"==typeof e&&(n="String data of length "+e.length,t&&(n+=". Content: '"+e+"'")),n}function h(e){return e&&"undefined"!=typeof ArrayBuffer&&(e instanceof ArrayBuffer||e.constructor&&"ArrayBuffer"===e.constructor.name)}function p(e,t,n,o,c,u,l,p,d){return a(this,void 0,void 0,(function(){var a,g,y,b,m,w,E,S;return s(this,(function(s){switch(s.label){case 0:return g={},c?[4,c()]:[3,2];case 1:(y=s.sent())&&((a={}).Authorization="Bearer "+y,g=a),s.label=2;case 2:return b=v(),m=b[0],w=b[1],g[m]=w,e.log(r.a.Trace,"("+t+" transport) sending data. "+f(u,l)+"."),E=h(u)?"arraybuffer":"text",[4,n.post(o,{content:u,headers:i({},g,d),responseType:E,withCredentials:p})];case 3:return S=s.sent(),e.log(r.a.Trace,"("+t+" transport) request complete. Response status: "+S.statusCode+"."),[2]}}))}))}function d(e){return void 0===e?new y(r.a.Information):null===e?o.a.instance:e.log?e:new y(e)}var g=function(){function e(e,t){this.subject=e,this.observer=t}return e.prototype.dispose=function(){var e=this.subject.observers.indexOf(this.observer);e>-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),y=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}();function v(){var e="X-SignalR-User-Agent";return l.isNode&&(e="User-Agent"),[e,b(c,m(),E(),w())]}function b(e,t,n,r){var o="Microsoft SignalR/",i=e.split(".");return o+=i[0]+"."+i[1],o+=" ("+e+"; ",o+=t&&""!==t?t+"; ":"Unknown OS; ",o+=""+n,o+=r?"; "+r:"; Unknown Runtime Version",o+=")"}function m(){if(!l.isNode)return"";switch(e.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return e.platform}}function w(){if(l.isNode)return e.versions.node}function E(){return l.isNode?"NodeJS":"Browser"}}).call(this,n(14))},function(e,t,n){"use strict";n.r(t),n.d(t,"AbortError",(function(){return s})),n.d(t,"HttpError",(function(){return i})),n.d(t,"TimeoutError",(function(){return a})),n.d(t,"HttpClient",(function(){return l})),n.d(t,"HttpResponse",(function(){return u})),n.d(t,"DefaultHttpClient",(function(){return S})),n.d(t,"HubConnection",(function(){return O})),n.d(t,"HubConnectionState",(function(){return I})),n.d(t,"HubConnectionBuilder",(function(){return re})),n.d(t,"MessageType",(function(){return b})),n.d(t,"LogLevel",(function(){return f.a})),n.d(t,"HttpTransportType",(function(){return P})),n.d(t,"TransferFormat",(function(){return x})),n.d(t,"NullLogger",(function(){return $.a})),n.d(t,"JsonHubProtocol",(function(){return ee})),n.d(t,"Subject",(function(){return _})),n.d(t,"VERSION",(function(){return h.e}));var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(e){function t(t,n){var r=this,o=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=o,r}return o(t,e),t}(Error),a=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return o(t,e),t}(Error),c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u=function(e,t,n){this.statusCode=e,this.statusText=t,this.content=n},l=function(){function e(){}return e.prototype.get=function(e,t){return this.send(c({},t,{method:"GET",url:e}))},e.prototype.post=function(e,t){return this.send(c({},t,{method:"POST",url:e}))},e.prototype.delete=function(e,t){return this.send(c({},t,{method:"DELETE",url:e}))},e.prototype.getCookieString=function(e){return""},e}(),f=n(0),h=n(1),p=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},g=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},y=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},v=function(e){function t(t){var n=e.call(this)||this;if(n.logger=t,"undefined"==typeof fetch){var r=require;n.jar=new(r("tough-cookie").CookieJar),n.fetchType=r("node-fetch"),n.fetchType=r("fetch-cookie")(n.fetchType,n.jar),n.abortControllerType=r("abort-controller")}else n.fetchType=fetch.bind(self),n.abortControllerType=AbortController;return n}return p(t,e),t.prototype.send=function(e){return g(this,void 0,void 0,(function(){var t,n,r,o,c,l,h,p=this;return y(this,(function(g){switch(g.label){case 0:if(e.abortSignal&&e.abortSignal.aborted)throw new s;if(!e.method)throw new Error("No method defined.");if(!e.url)throw new Error("No url defined.");t=new this.abortControllerType,e.abortSignal&&(e.abortSignal.onabort=function(){t.abort(),n=new s}),r=null,e.timeout&&(o=e.timeout,r=setTimeout((function(){t.abort(),p.logger.log(f.a.Warning,"Timeout from HTTP request."),n=new a}),o)),g.label=1;case 1:return g.trys.push([1,3,4,5]),[4,this.fetchType(e.url,{body:e.content,cache:"no-cache",credentials:!0===e.withCredentials?"include":"same-origin",headers:d({"Content-Type":"text/plain;charset=UTF-8","X-Requested-With":"XMLHttpRequest"},e.headers),method:e.method,mode:"cors",redirect:"manual",signal:t.signal})];case 2:return c=g.sent(),[3,5];case 3:if(l=g.sent(),n)throw n;throw this.logger.log(f.a.Warning,"Error from HTTP request. "+l+"."),l;case 4:return r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null),[7];case 5:if(!c.ok)throw new i(c.statusText,c.status);return[4,function(e,t){var n;switch(t){case"arraybuffer":n=e.arrayBuffer();break;case"text":n=e.text();break;case"blob":case"document":case"json":throw new Error(t+" is not supported.");default:n=e.text()}return n}(c,e.responseType)];case 6:return h=g.sent(),[2,new u(c.status,c.statusText,h)]}}))}))},t.prototype.getCookieString=function(e){var t="";return h.c.isNode&&this.jar&&this.jar.getCookies(e,(function(e,n){return t=n.join("; ")})),t},t}(l);var b,m=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),w=function(e){function t(t){var n=e.call(this)||this;return n.logger=t,n}return m(t,e),t.prototype.send=function(e){var t=this;return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?new Promise((function(n,r){var o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.withCredentials=void 0===e.withCredentials||e.withCredentials,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-Type","text/plain;charset=UTF-8");var c=e.headers;c&&Object.keys(c).forEach((function(e){o.setRequestHeader(e,c[e])})),e.responseType&&(o.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=function(){o.abort(),r(new s)}),e.timeout&&(o.timeout=e.timeout),o.onload=function(){e.abortSignal&&(e.abortSignal.onabort=null),o.status>=200&&o.status<300?n(new u(o.status,o.statusText,o.response||o.responseText)):r(new i(o.statusText,o.status))},o.onerror=function(){t.logger.log(f.a.Warning,"Error from HTTP request. "+o.status+": "+o.statusText+"."),r(new i(o.statusText,o.status))},o.ontimeout=function(){t.logger.log(f.a.Warning,"Timeout from HTTP request."),r(new a)},o.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(l),E=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),S=function(e){function t(t){var n=e.call(this)||this;if("undefined"!=typeof fetch||h.c.isNode)n.httpClient=new v(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");n.httpClient=new w(t)}return n}return E(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new s):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(l),C=n(44);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(b||(b={}));var I,_=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t<n.length;t++){n[t].next(e)}},e.prototype.error=function(e){for(var t=0,n=this.observers;t<n.length;t++){var r=n[t];r.error&&r.error(e)}},e.prototype.complete=function(){for(var e=0,t=this.observers;e<t.length;e++){var n=t[e];n.complete&&n.complete()}},e.prototype.subscribe=function(e){return this.observers.push(e),new h.d(this,e)},e}(),k=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},T=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};!function(e){e.Disconnected="Disconnected",e.Connecting="Connecting",e.Connected="Connected",e.Disconnecting="Disconnecting",e.Reconnecting="Reconnecting"}(I||(I={}));var P,x,O=function(){function e(e,t,n,r){var o=this;h.a.isRequired(e,"connection"),h.a.isRequired(t,"logger"),h.a.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.logger=t,this.protocol=n,this.connection=e,this.reconnectPolicy=r,this.handshakeProtocol=new C.a,this.connection.onreceive=function(e){return o.processIncomingData(e)},this.connection.onclose=function(e){return o.connectionClosed(e)},this.callbacks={},this.methods={},this.closedCallbacks=[],this.reconnectingCallbacks=[],this.reconnectedCallbacks=[],this.invocationId=0,this.receivedHandshakeResponse=!1,this.connectionState=I.Disconnected,this.connectionStarted=!1,this.cachedPingMessage=this.protocol.writeMessage({type:b.Ping})}return e.create=function(t,n,r,o){return new e(t,n,r,o)},Object.defineProperty(e.prototype,"state",{get:function(){return this.connectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectionId",{get:function(){return this.connection&&this.connection.connectionId||null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseUrl",{get:function(){return this.connection.baseUrl||""},set:function(e){if(this.connectionState!==I.Disconnected&&this.connectionState!==I.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!e)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=e},enumerable:!0,configurable:!0}),e.prototype.start=function(){return this.startPromise=this.startWithStateTransitions(),this.startPromise},e.prototype.startWithStateTransitions=function(){return k(this,void 0,void 0,(function(){var e;return T(this,(function(t){switch(t.label){case 0:if(this.connectionState!==I.Disconnected)return[2,Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."))];this.connectionState=I.Connecting,this.logger.log(f.a.Debug,"Starting HubConnection."),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.startInternal()];case 2:return t.sent(),this.connectionState=I.Connected,this.connectionStarted=!0,this.logger.log(f.a.Debug,"HubConnection connected successfully."),[3,4];case 3:return e=t.sent(),this.connectionState=I.Disconnected,this.logger.log(f.a.Debug,"HubConnection failed to start successfully because of error '"+e+"'."),[2,Promise.reject(e)];case 4:return[2]}}))}))},e.prototype.startInternal=function(){return k(this,void 0,void 0,(function(){var e,t,n,r=this;return T(this,(function(o){switch(o.label){case 0:return this.stopDuringStartError=void 0,this.receivedHandshakeResponse=!1,e=new Promise((function(e,t){r.handshakeResolver=e,r.handshakeRejecter=t})),[4,this.connection.start(this.protocol.transferFormat)];case 1:o.sent(),o.label=2;case 2:return o.trys.push([2,5,,7]),t={protocol:this.protocol.name,version:this.protocol.version},this.logger.log(f.a.Debug,"Sending handshake request."),[4,this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(t))];case 3:return o.sent(),this.logger.log(f.a.Information,"Using HubProtocol '"+this.protocol.name+"'."),this.cleanupTimeout(),this.resetTimeoutPeriod(),this.resetKeepAliveInterval(),[4,e];case 4:if(o.sent(),this.stopDuringStartError)throw this.stopDuringStartError;return[3,7];case 5:return n=o.sent(),this.logger.log(f.a.Debug,"Hub handshake failed with error '"+n+"' during start(). Stopping HubConnection."),this.cleanupTimeout(),this.cleanupPingTimer(),[4,this.connection.stop(n)];case 6:throw o.sent(),n;case 7:return[2]}}))}))},e.prototype.stop=function(){return k(this,void 0,void 0,(function(){var e;return T(this,(function(t){switch(t.label){case 0:return e=this.startPromise,this.stopPromise=this.stopInternal(),[4,this.stopPromise];case 1:t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),[4,e];case 3:return t.sent(),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.stopInternal=function(e){return this.connectionState===I.Disconnected?(this.logger.log(f.a.Debug,"Call to HubConnection.stop("+e+") ignored because it is already in the disconnected state."),Promise.resolve()):this.connectionState===I.Disconnecting?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnecting state."),this.stopPromise):(this.connectionState=I.Disconnecting,this.logger.log(f.a.Debug,"Stopping HubConnection."),this.reconnectDelayHandle?(this.logger.log(f.a.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.reconnectDelayHandle),this.reconnectDelayHandle=void 0,this.completeClose(),Promise.resolve()):(this.cleanupTimeout(),this.cleanupPingTimer(),this.stopDuringStartError=e||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(e)))},e.prototype.stream=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o,i=this.replaceStreamingParams(n),a=i[0],s=i[1],c=this.createStreamInvocation(e,n,s),u=new _;return u.cancelCallback=function(){var e=t.createCancelInvocation(c.invocationId);return delete t.callbacks[c.invocationId],o.then((function(){return t.sendWithProtocol(e)}))},this.callbacks[c.invocationId]=function(e,t){t?u.error(t):e&&(e.type===b.Completion?e.error?u.error(new Error(e.error)):u.complete():u.next(e.item))},o=this.sendWithProtocol(c).catch((function(e){u.error(e),delete t.callbacks[c.invocationId]})),this.launchStreams(a,o),u},e.prototype.sendMessage=function(e){return this.resetKeepAliveInterval(),this.connection.send(e)},e.prototype.sendWithProtocol=function(e){return this.sendMessage(this.protocol.writeMessage(e))},e.prototype.send=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=this.replaceStreamingParams(t),o=r[0],i=r[1],a=this.sendWithProtocol(this.createInvocation(e,t,!0,i));return this.launchStreams(o,a),a},e.prototype.invoke=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var o=this.replaceStreamingParams(n),i=o[0],a=o[1],s=this.createInvocation(e,n,!1,a),c=new Promise((function(e,n){t.callbacks[s.invocationId]=function(t,r){r?n(r):t&&(t.type===b.Completion?t.error?n(new Error(t.error)):e(t.result):n(new Error("Unexpected message type: "+t.type)))};var r=t.sendWithProtocol(s).catch((function(e){n(e),delete t.callbacks[s.invocationId]}));t.launchStreams(i,r)}));return c},e.prototype.on=function(e,t){e&&t&&(e=e.toLowerCase(),this.methods[e]||(this.methods[e]=[]),-1===this.methods[e].indexOf(t)&&this.methods[e].push(t))},e.prototype.off=function(e,t){if(e){e=e.toLowerCase();var n=this.methods[e];if(n)if(t){var r=n.indexOf(t);-1!==r&&(n.splice(r,1),0===n.length&&delete this.methods[e])}else delete this.methods[e]}},e.prototype.onclose=function(e){e&&this.closedCallbacks.push(e)},e.prototype.onreconnecting=function(e){e&&this.reconnectingCallbacks.push(e)},e.prototype.onreconnected=function(e){e&&this.reconnectedCallbacks.push(e)},e.prototype.processIncomingData=function(e){if(this.cleanupTimeout(),this.receivedHandshakeResponse||(e=this.processHandshakeResponse(e),this.receivedHandshakeResponse=!0),e)for(var t=0,n=this.protocol.parseMessages(e,this.logger);t<n.length;t++){var r=n[t];switch(r.type){case b.Invocation:this.invokeClientMethod(r);break;case b.StreamItem:case b.Completion:var o=this.callbacks[r.invocationId];o&&(r.type===b.Completion&&delete this.callbacks[r.invocationId],o(r));break;case b.Ping:break;case b.Close:this.logger.log(f.a.Information,"Close message received from server.");var i=r.error?new Error("Server returned an error on close: "+r.error):void 0;!0===r.allowReconnect?this.connection.stop(i):this.stopPromise=this.stopInternal(i);break;default:this.logger.log(f.a.Warning,"Invalid message type: "+r.type+".")}}this.resetTimeoutPeriod()},e.prototype.processHandshakeResponse=function(e){var t,n,r;try{r=(t=this.handshakeProtocol.parseHandshakeResponse(e))[0],n=t[1]}catch(e){var o="Error parsing handshake response: "+e;this.logger.log(f.a.Error,o);var i=new Error(o);throw this.handshakeRejecter(i),i}if(n.error){o="Server returned handshake error: "+n.error;this.logger.log(f.a.Error,o);i=new Error(o);throw this.handshakeRejecter(i),i}return this.logger.log(f.a.Debug,"Server handshake complete."),this.handshakeResolver(),r},e.prototype.resetKeepAliveInterval=function(){var e=this;this.connection.features.inherentKeepAlive||(this.cleanupPingTimer(),this.pingServerHandle=setTimeout((function(){return k(e,void 0,void 0,(function(){return T(this,(function(e){switch(e.label){case 0:if(this.connectionState!==I.Connected)return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.sendMessage(this.cachedPingMessage)];case 2:return e.sent(),[3,4];case 3:return e.sent(),this.cleanupPingTimer(),[3,4];case 4:return[2]}}))}))}),this.keepAliveIntervalInMilliseconds))},e.prototype.resetTimeoutPeriod=function(){var e=this;this.connection.features&&this.connection.features.inherentKeepAlive||(this.timeoutHandle=setTimeout((function(){return e.serverTimeout()}),this.serverTimeoutInMilliseconds))},e.prototype.serverTimeout=function(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))},e.prototype.invokeClientMethod=function(e){var t=this,n=this.methods[e.target.toLowerCase()];if(n){try{n.forEach((function(n){return n.apply(t,e.arguments)}))}catch(t){this.logger.log(f.a.Error,"A callback for the method "+e.target.toLowerCase()+" threw error '"+t+"'.")}if(e.invocationId){var r="Server requested a response, which is not supported in this version of the client.";this.logger.log(f.a.Error,r),this.stopPromise=this.stopInternal(new Error(r))}}else this.logger.log(f.a.Warning,"No client method with the name '"+e.target+"' found.")},e.prototype.connectionClosed=function(e){this.logger.log(f.a.Debug,"HubConnection.connectionClosed("+e+") called while in state "+this.connectionState+"."),this.stopDuringStartError=this.stopDuringStartError||e||new Error("The underlying connection was closed before the hub handshake could complete."),this.handshakeResolver&&this.handshakeResolver(),this.cancelCallbacksWithError(e||new Error("Invocation canceled due to the underlying connection being closed.")),this.cleanupTimeout(),this.cleanupPingTimer(),this.connectionState===I.Disconnecting?this.completeClose(e):this.connectionState===I.Connected&&this.reconnectPolicy?this.reconnect(e):this.connectionState===I.Connected&&this.completeClose(e)},e.prototype.completeClose=function(e){var t=this;if(this.connectionStarted){this.connectionState=I.Disconnected,this.connectionStarted=!1;try{this.closedCallbacks.forEach((function(n){return n.apply(t,[e])}))}catch(t){this.logger.log(f.a.Error,"An onclose callback called with error '"+e+"' threw error '"+t+"'.")}}},e.prototype.reconnect=function(e){return k(this,void 0,void 0,(function(){var t,n,r,o,i,a=this;return T(this,(function(s){switch(s.label){case 0:if(t=Date.now(),n=0,r=void 0!==e?e:new Error("Attempting to reconnect due to a unknown error."),null===(o=this.getNextRetryDelay(n++,0,r)))return this.logger.log(f.a.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),this.completeClose(e),[2];if(this.connectionState=I.Reconnecting,e?this.logger.log(f.a.Information,"Connection reconnecting because of error '"+e+"'."):this.logger.log(f.a.Information,"Connection reconnecting."),this.onreconnecting){try{this.reconnectingCallbacks.forEach((function(t){return t.apply(a,[e])}))}catch(t){this.logger.log(f.a.Error,"An onreconnecting callback called with error '"+e+"' threw error '"+t+"'.")}if(this.connectionState!==I.Reconnecting)return this.logger.log(f.a.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting."),[2]}s.label=1;case 1:return null===o?[3,7]:(this.logger.log(f.a.Information,"Reconnect attempt number "+n+" will start in "+o+" ms."),[4,new Promise((function(e){a.reconnectDelayHandle=setTimeout(e,o)}))]);case 2:if(s.sent(),this.reconnectDelayHandle=void 0,this.connectionState!==I.Reconnecting)return this.logger.log(f.a.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting."),[2];s.label=3;case 3:return s.trys.push([3,5,,6]),[4,this.startInternal()];case 4:if(s.sent(),this.connectionState=I.Connected,this.logger.log(f.a.Information,"HubConnection reconnected successfully."),this.onreconnected)try{this.reconnectedCallbacks.forEach((function(e){return e.apply(a,[a.connection.connectionId])}))}catch(e){this.logger.log(f.a.Error,"An onreconnected callback called with connectionId '"+this.connection.connectionId+"; threw error '"+e+"'.")}return[2];case 5:return i=s.sent(),this.logger.log(f.a.Information,"Reconnect attempt failed because of error '"+i+"'."),this.connectionState!==I.Reconnecting?(this.logger.log(f.a.Debug,"Connection left the reconnecting state during reconnect attempt. Done reconnecting."),[2]):(r=i instanceof Error?i:new Error(i.toString()),o=this.getNextRetryDelay(n++,Date.now()-t,r),[3,6]);case 6:return[3,1];case 7:return this.logger.log(f.a.Information,"Reconnect retries have been exhausted after "+(Date.now()-t)+" ms and "+n+" failed attempts. Connection disconnecting."),this.completeClose(),[2]}}))}))},e.prototype.getNextRetryDelay=function(e,t,n){try{return this.reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:n})}catch(n){return this.logger.log(f.a.Error,"IRetryPolicy.nextRetryDelayInMilliseconds("+e+", "+t+") threw error '"+n+"'."),null}},e.prototype.cancelCallbacksWithError=function(e){var t=this.callbacks;this.callbacks={},Object.keys(t).forEach((function(n){(0,t[n])(null,e)}))},e.prototype.cleanupPingTimer=function(){this.pingServerHandle&&clearTimeout(this.pingServerHandle)},e.prototype.cleanupTimeout=function(){this.timeoutHandle&&clearTimeout(this.timeoutHandle)},e.prototype.createInvocation=function(e,t,n,r){if(n)return 0!==r.length?{arguments:t,streamIds:r,target:e,type:b.Invocation}:{arguments:t,target:e,type:b.Invocation};var o=this.invocationId;return this.invocationId++,0!==r.length?{arguments:t,invocationId:o.toString(),streamIds:r,target:e,type:b.Invocation}:{arguments:t,invocationId:o.toString(),target:e,type:b.Invocation}},e.prototype.launchStreams=function(e,t){var n=this;if(0!==e.length){t||(t=Promise.resolve());var r=function(r){e[r].subscribe({complete:function(){t=t.then((function(){return n.sendWithProtocol(n.createCompletionMessage(r))}))},error:function(e){var o;o=e instanceof Error?e.message:e&&e.toString?e.toString():"Unknown error",t=t.then((function(){return n.sendWithProtocol(n.createCompletionMessage(r,o))}))},next:function(e){t=t.then((function(){return n.sendWithProtocol(n.createStreamItemMessage(r,e))}))}})};for(var o in e)r(o)}},e.prototype.replaceStreamingParams=function(e){for(var t=[],n=[],r=0;r<e.length;r++){var o=e[r];if(this.isObservable(o)){var i=this.invocationId;this.invocationId++,t[i]=o,n.push(i.toString()),e.splice(r,1)}}return[t,n]},e.prototype.isObservable=function(e){return e&&e.subscribe&&"function"==typeof e.subscribe},e.prototype.createStreamInvocation=function(e,t,n){var r=this.invocationId;return this.invocationId++,0!==n.length?{arguments:t,invocationId:r.toString(),streamIds:n,target:e,type:b.StreamInvocation}:{arguments:t,invocationId:r.toString(),target:e,type:b.StreamInvocation}},e.prototype.createCancelInvocation=function(e){return{invocationId:e,type:b.CancelInvocation}},e.prototype.createStreamItemMessage=function(e,t){return{invocationId:e,item:t,type:b.StreamItem}},e.prototype.createCompletionMessage=function(e,t,n){return t?{error:t,invocationId:e,type:b.Completion}:{invocationId:e,result:n,type:b.Completion}},e}(),R=[0,2e3,1e4,3e4,null],L=function(){function e(e){this.retryDelays=void 0!==e?e.concat([null]):R}return e.prototype.nextRetryDelayInMilliseconds=function(e){return this.retryDelays[e.previousRetryCount]},e}();!function(e){e[e.None=0]="None",e[e.WebSockets=1]="WebSockets",e[e.ServerSentEvents=2]="ServerSentEvents",e[e.LongPolling=4]="LongPolling"}(P||(P={})),function(e){e[e.Text=1]="Text",e[e.Binary=2]="Binary"}(x||(x={}));var D=function(){function e(){this.isAborted=!1,this.onabort=null}return e.prototype.abort=function(){this.isAborted||(this.isAborted=!0,this.onabort&&this.onabort())},Object.defineProperty(e.prototype,"signal",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aborted",{get:function(){return this.isAborted},enumerable:!0,configurable:!0}),e}(),M=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},j=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},A=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},B=function(){function e(e,t,n,r,o,i){this.httpClient=e,this.accessTokenFactory=t,this.logger=n,this.pollAbort=new D,this.logMessageContent=r,this.withCredentials=o,this.headers=i,this.running=!1,this.onreceive=null,this.onclose=null}return Object.defineProperty(e.prototype,"pollAborted",{get:function(){return this.pollAbort.aborted},enumerable:!0,configurable:!0}),e.prototype.connect=function(e,t){return j(this,void 0,void 0,(function(){var n,r,o,a,s,c,u,l,p;return A(this,(function(d){switch(d.label){case 0:if(h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.url=e,this.logger.log(f.a.Trace,"(LongPolling transport) Connecting."),t===x.Binary&&"undefined"!=typeof XMLHttpRequest&&"string"!=typeof(new XMLHttpRequest).responseType)throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");return r=Object(h.h)(),o=r[0],a=r[1],s=M(((n={})[o]=a,n),this.headers),c={abortSignal:this.pollAbort.signal,headers:s,timeout:1e5,withCredentials:this.withCredentials},t===x.Binary&&(c.responseType="arraybuffer"),[4,this.getAccessToken()];case 1:return u=d.sent(),this.updateHeaderToken(c,u),l=e+"&_="+Date.now(),this.logger.log(f.a.Trace,"(LongPolling transport) polling: "+l+"."),[4,this.httpClient.get(l,c)];case 2:return 200!==(p=d.sent()).statusCode?(this.logger.log(f.a.Error,"(LongPolling transport) Unexpected response code: "+p.statusCode+"."),this.closeError=new i(p.statusText||"",p.statusCode),this.running=!1):this.running=!0,this.receiving=this.poll(this.url,c),[2]}}))}))},e.prototype.getAccessToken=function(){return j(this,void 0,void 0,(function(){return A(this,(function(e){switch(e.label){case 0:return this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:return[2,e.sent()];case 2:return[2,null]}}))}))},e.prototype.updateHeaderToken=function(e,t){e.headers||(e.headers={}),t?e.headers.Authorization="Bearer "+t:e.headers.Authorization&&delete e.headers.Authorization},e.prototype.poll=function(e,t){return j(this,void 0,void 0,(function(){var n,r,o,s;return A(this,(function(c){switch(c.label){case 0:c.trys.push([0,,8,9]),c.label=1;case 1:return this.running?[4,this.getAccessToken()]:[3,7];case 2:n=c.sent(),this.updateHeaderToken(t,n),c.label=3;case 3:return c.trys.push([3,5,,6]),r=e+"&_="+Date.now(),this.logger.log(f.a.Trace,"(LongPolling transport) polling: "+r+"."),[4,this.httpClient.get(r,t)];case 4:return 204===(o=c.sent()).statusCode?(this.logger.log(f.a.Information,"(LongPolling transport) Poll terminated by server."),this.running=!1):200!==o.statusCode?(this.logger.log(f.a.Error,"(LongPolling transport) Unexpected response code: "+o.statusCode+"."),this.closeError=new i(o.statusText||"",o.statusCode),this.running=!1):o.content?(this.logger.log(f.a.Trace,"(LongPolling transport) data received. "+Object(h.g)(o.content,this.logMessageContent)+"."),this.onreceive&&this.onreceive(o.content)):this.logger.log(f.a.Trace,"(LongPolling transport) Poll timed out, reissuing."),[3,6];case 5:return s=c.sent(),this.running?s instanceof a?this.logger.log(f.a.Trace,"(LongPolling transport) Poll timed out, reissuing."):(this.closeError=s,this.running=!1):this.logger.log(f.a.Trace,"(LongPolling transport) Poll errored after shutdown: "+s.message),[3,6];case 6:return[3,1];case 7:return[3,9];case 8:return this.logger.log(f.a.Trace,"(LongPolling transport) Polling complete."),this.pollAborted||this.raiseOnClose(),[7];case 9:return[2]}}))}))},e.prototype.send=function(e){return j(this,void 0,void 0,(function(){return A(this,(function(t){return this.running?[2,Object(h.j)(this.logger,"LongPolling",this.httpClient,this.url,this.accessTokenFactory,e,this.logMessageContent,this.withCredentials,this.headers)]:[2,Promise.reject(new Error("Cannot send until the transport is connected"))]}))}))},e.prototype.stop=function(){return j(this,void 0,void 0,(function(){var e,t,n,r,o,i;return A(this,(function(a){switch(a.label){case 0:this.logger.log(f.a.Trace,"(LongPolling transport) Stopping polling."),this.running=!1,this.pollAbort.abort(),a.label=1;case 1:return a.trys.push([1,,5,6]),[4,this.receiving];case 2:return a.sent(),this.logger.log(f.a.Trace,"(LongPolling transport) sending DELETE request to "+this.url+"."),e={},t=Object(h.h)(),n=t[0],r=t[1],e[n]=r,o={headers:M({},e,this.headers),withCredentials:this.withCredentials},[4,this.getAccessToken()];case 3:return i=a.sent(),this.updateHeaderToken(o,i),[4,this.httpClient.delete(this.url,o)];case 4:return a.sent(),this.logger.log(f.a.Trace,"(LongPolling transport) DELETE request sent."),[3,6];case 5:return this.logger.log(f.a.Trace,"(LongPolling transport) Stop finished."),this.raiseOnClose(),[7];case 6:return[2]}}))}))},e.prototype.raiseOnClose=function(){if(this.onclose){var e="(LongPolling transport) Firing onclose event.";this.closeError&&(e+=" Error: "+this.closeError),this.logger.log(f.a.Trace,e),this.onclose(this.closeError)}},e}(),U=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},N=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},F=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},H=function(){function e(e,t,n,r,o,i,a){this.httpClient=e,this.accessTokenFactory=t,this.logger=n,this.logMessageContent=r,this.withCredentials=i,this.eventSourceConstructor=o,this.headers=a,this.onreceive=null,this.onclose=null}return e.prototype.connect=function(e,t){return N(this,void 0,void 0,(function(){var n,r=this;return F(this,(function(o){switch(o.label){case 0:return h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.logger.log(f.a.Trace,"(SSE transport) Connecting."),this.url=e,this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=o.sent())&&(e+=(e.indexOf("?")<0?"?":"&")+"access_token="+encodeURIComponent(n)),o.label=2;case 2:return[2,new Promise((function(n,o){var i=!1;if(t===x.Text){var a;if(h.c.isBrowser||h.c.isWebWorker)a=new r.eventSourceConstructor(e,{withCredentials:r.withCredentials});else{var s=r.httpClient.getCookieString(e),c={};c.Cookie=s;var u=Object(h.h)(),l=u[0],p=u[1];c[l]=p,a=new r.eventSourceConstructor(e,{withCredentials:r.withCredentials,headers:U({},c,r.headers)})}try{a.onmessage=function(e){if(r.onreceive)try{r.logger.log(f.a.Trace,"(SSE transport) data received. "+Object(h.g)(e.data,r.logMessageContent)+"."),r.onreceive(e.data)}catch(e){return void r.close(e)}},a.onerror=function(e){var t=new Error(e.data||"Error occurred");i?r.close(t):o(t)},a.onopen=function(){r.logger.log(f.a.Information,"SSE connected to "+r.url),r.eventSource=a,i=!0,n()}}catch(e){return void o(e)}}else o(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))]}}))}))},e.prototype.send=function(e){return N(this,void 0,void 0,(function(){return F(this,(function(t){return this.eventSource?[2,Object(h.j)(this.logger,"SSE",this.httpClient,this.url,this.accessTokenFactory,e,this.logMessageContent,this.withCredentials,this.headers)]:[2,Promise.reject(new Error("Cannot send until the transport is connected"))]}))}))},e.prototype.stop=function(){return this.close(),Promise.resolve()},e.prototype.close=function(e){this.eventSource&&(this.eventSource.close(),this.eventSource=void 0,this.onclose&&this.onclose(e))},e}(),q=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},W=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},z=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},Y=function(){function e(e,t,n,r,o,i){this.logger=n,this.accessTokenFactory=t,this.logMessageContent=r,this.webSocketConstructor=o,this.httpClient=e,this.onreceive=null,this.onclose=null,this.headers=i}return e.prototype.connect=function(e,t){return W(this,void 0,void 0,(function(){var n,r=this;return z(this,(function(o){switch(o.label){case 0:return h.a.isRequired(e,"url"),h.a.isRequired(t,"transferFormat"),h.a.isIn(t,x,"transferFormat"),this.logger.log(f.a.Trace,"(WebSockets transport) Connecting."),this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=o.sent())&&(e+=(e.indexOf("?")<0?"?":"&")+"access_token="+encodeURIComponent(n)),o.label=2;case 2:return[2,new Promise((function(n,o){var i;e=e.replace(/^http/,"ws");var a=r.httpClient.getCookieString(e),s=!1;if(h.c.isNode){var c={},u=Object(h.h)(),l=u[0],p=u[1];c[l]=p,a&&(c.Cookie=""+a),i=new r.webSocketConstructor(e,void 0,{headers:q({},c,r.headers)})}i||(i=new r.webSocketConstructor(e)),t===x.Binary&&(i.binaryType="arraybuffer"),i.onopen=function(t){r.logger.log(f.a.Information,"WebSocket connected to "+e+"."),r.webSocket=i,s=!0,n()},i.onerror=function(e){var t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:new Error("There was an error with the transport."),o(t)},i.onmessage=function(e){if(r.logger.log(f.a.Trace,"(WebSockets transport) data received. "+Object(h.g)(e.data,r.logMessageContent)+"."),r.onreceive)try{r.onreceive(e.data)}catch(e){return void r.close(e)}},i.onclose=function(e){if(s)r.close(e);else{var t=null;t="undefined"!=typeof ErrorEvent&&e instanceof ErrorEvent?e.error:new Error("There was an error with the transport."),o(t)}}}))]}}))}))},e.prototype.send=function(e){return this.webSocket&&this.webSocket.readyState===this.webSocketConstructor.OPEN?(this.logger.log(f.a.Trace,"(WebSockets transport) sending data. "+Object(h.g)(e,this.logMessageContent)+"."),this.webSocket.send(e),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")},e.prototype.stop=function(){return this.webSocket&&this.close(void 0),Promise.resolve()},e.prototype.close=function(e){this.webSocket&&(this.webSocket.onclose=function(){},this.webSocket.onmessage=function(){},this.webSocket.onerror=function(){},this.webSocket.close(),this.webSocket=void 0),this.logger.log(f.a.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this.isCloseEvent(e)||!1!==e.wasClean&&1e3===e.code?e instanceof Error?this.onclose(e):this.onclose():this.onclose(new Error("WebSocket closed with status code: "+e.code+" ("+e.reason+").")))},e.prototype.isCloseEvent=function(e){return e&&"boolean"==typeof e.wasClean&&"number"==typeof e.code},e}(),J=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},K=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(a,s)}c((r=r.apply(e,t||[])).next())}))},V=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},X=function(){function e(e,t){if(void 0===t&&(t={}),this.features={},this.negotiateVersion=1,h.a.isRequired(e,"url"),this.logger=Object(h.f)(t.logger),this.baseUrl=this.resolveUrl(e),(t=t||{}).logMessageContent=void 0!==t.logMessageContent&&t.logMessageContent,"boolean"!=typeof t.withCredentials&&void 0!==t.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");t.withCredentials=void 0===t.withCredentials||t.withCredentials;var n=null,r=null;if(h.c.isNode){var o=require;n=o("ws"),r=o("eventsource")}h.c.isNode||"undefined"==typeof WebSocket||t.WebSocket?h.c.isNode&&!t.WebSocket&&n&&(t.WebSocket=n):t.WebSocket=WebSocket,h.c.isNode||"undefined"==typeof EventSource||t.EventSource?h.c.isNode&&!t.EventSource&&void 0!==r&&(t.EventSource=r):t.EventSource=EventSource,this.httpClient=t.httpClient||new S(this.logger),this.connectionState="Disconnected",this.connectionStarted=!1,this.options=t,this.onreceive=null,this.onclose=null}return e.prototype.start=function(e){return K(this,void 0,void 0,(function(){var t;return V(this,(function(n){switch(n.label){case 0:return e=e||x.Binary,h.a.isIn(e,x,"transferFormat"),this.logger.log(f.a.Debug,"Starting connection with transfer format '"+x[e]+"'."),"Disconnected"!==this.connectionState?[2,Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."))]:(this.connectionState="Connecting",this.startInternalPromise=this.startInternal(e),[4,this.startInternalPromise]);case 1:return n.sent(),"Disconnecting"!==this.connectionState?[3,3]:(t="Failed to start the HttpConnection before stop() was called.",this.logger.log(f.a.Error,t),[4,this.stopPromise]);case 2:return n.sent(),[2,Promise.reject(new Error(t))];case 3:if("Connected"!==this.connectionState)return t="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!",this.logger.log(f.a.Error,t),[2,Promise.reject(new Error(t))];n.label=4;case 4:return this.connectionStarted=!0,[2]}}))}))},e.prototype.send=function(e){return"Connected"!==this.connectionState?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this.sendQueue||(this.sendQueue=new G(this.transport)),this.sendQueue.send(e))},e.prototype.stop=function(e){return K(this,void 0,void 0,(function(){var t=this;return V(this,(function(n){switch(n.label){case 0:return"Disconnected"===this.connectionState?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnected state."),[2,Promise.resolve()]):"Disconnecting"===this.connectionState?(this.logger.log(f.a.Debug,"Call to HttpConnection.stop("+e+") ignored because the connection is already in the disconnecting state."),[2,this.stopPromise]):(this.connectionState="Disconnecting",this.stopPromise=new Promise((function(e){t.stopPromiseResolver=e})),[4,this.stopInternal(e)]);case 1:return n.sent(),[4,this.stopPromise];case 2:return n.sent(),[2]}}))}))},e.prototype.stopInternal=function(e){return K(this,void 0,void 0,(function(){var t;return V(this,(function(n){switch(n.label){case 0:this.stopError=e,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.startInternalPromise];case 2:return n.sent(),[3,4];case 3:return n.sent(),[3,4];case 4:if(!this.transport)return[3,9];n.label=5;case 5:return n.trys.push([5,7,,8]),[4,this.transport.stop()];case 6:return n.sent(),[3,8];case 7:return t=n.sent(),this.logger.log(f.a.Error,"HttpConnection.transport.stop() threw error '"+t+"'."),this.stopConnection(),[3,8];case 8:return this.transport=void 0,[3,10];case 9:this.logger.log(f.a.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed."),this.stopConnection(),n.label=10;case 10:return[2]}}))}))},e.prototype.startInternal=function(e){return K(this,void 0,void 0,(function(){var t,n,r,o,i,a;return V(this,(function(s){switch(s.label){case 0:t=this.baseUrl,this.accessTokenFactory=this.options.accessTokenFactory,s.label=1;case 1:return s.trys.push([1,12,,13]),this.options.skipNegotiation?this.options.transport!==P.WebSockets?[3,3]:(this.transport=this.constructTransport(P.WebSockets),[4,this.startTransport(t,e)]):[3,5];case 2:return s.sent(),[3,4];case 3:throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");case 4:return[3,11];case 5:n=null,r=0,o=function(){var e;return V(this,(function(o){switch(o.label){case 0:return[4,i.getNegotiationResponse(t)];case 1:if(n=o.sent(),"Disconnecting"===i.connectionState||"Disconnected"===i.connectionState)throw new Error("The connection was stopped during negotiation.");if(n.error)throw new Error(n.error);if(n.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");return n.url&&(t=n.url),n.accessToken&&(e=n.accessToken,i.accessTokenFactory=function(){return e}),r++,[2]}}))},i=this,s.label=6;case 6:return[5,o()];case 7:s.sent(),s.label=8;case 8:if(n.url&&r<100)return[3,6];s.label=9;case 9:if(100===r&&n.url)throw new Error("Negotiate redirection limit exceeded.");return[4,this.createTransport(t,this.options.transport,n,e)];case 10:s.sent(),s.label=11;case 11:return this.transport instanceof B&&(this.features.inherentKeepAlive=!0),"Connecting"===this.connectionState&&(this.logger.log(f.a.Debug,"The HttpConnection connected successfully."),this.connectionState="Connected"),[3,13];case 12:return a=s.sent(),this.logger.log(f.a.Error,"Failed to start the connection: "+a),this.connectionState="Disconnected",this.transport=void 0,[2,Promise.reject(a)];case 13:return[2]}}))}))},e.prototype.getNegotiationResponse=function(e){return K(this,void 0,void 0,(function(){var t,n,r,o,i,a,s,c,u;return V(this,(function(l){switch(l.label){case 0:return t={},this.accessTokenFactory?[4,this.accessTokenFactory()]:[3,2];case 1:(n=l.sent())&&(t.Authorization="Bearer "+n),l.label=2;case 2:r=Object(h.h)(),o=r[0],i=r[1],t[o]=i,a=this.resolveNegotiateUrl(e),this.logger.log(f.a.Debug,"Sending negotiation request: "+a+"."),l.label=3;case 3:return l.trys.push([3,5,,6]),[4,this.httpClient.post(a,{content:"",headers:J({},t,this.options.headers),withCredentials:this.options.withCredentials})];case 4:return 200!==(s=l.sent()).statusCode?[2,Promise.reject(new Error("Unexpected status code returned from negotiate '"+s.statusCode+"'"))]:((!(c=JSON.parse(s.content)).negotiateVersion||c.negotiateVersion<1)&&(c.connectionToken=c.connectionId),[2,c]);case 5:return u=l.sent(),this.logger.log(f.a.Error,"Failed to complete negotiation with the server: "+u),[2,Promise.reject(u)];case 6:return[2]}}))}))},e.prototype.createConnectUrl=function(e,t){return t?e+(-1===e.indexOf("?")?"?":"&")+"id="+t:e},e.prototype.createTransport=function(e,t,n,r){return K(this,void 0,void 0,(function(){var o,i,a,s,c,u,l,h,p,d,g;return V(this,(function(y){switch(y.label){case 0:return o=this.createConnectUrl(e,n.connectionToken),this.isITransport(t)?(this.logger.log(f.a.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=t,[4,this.startTransport(o,r)]):[3,2];case 1:return y.sent(),this.connectionId=n.connectionId,[2];case 2:i=[],a=n.availableTransports||[],s=n,c=0,u=a,y.label=3;case 3:return c<u.length?(l=u[c],(h=this.resolveTransportOrError(l,t,r))instanceof Error?(i.push(l.transport+" failed: "+h),[3,12]):[3,4]):[3,13];case 4:if(!this.isITransport(h))return[3,12];if(this.transport=h,s)return[3,9];y.label=5;case 5:return y.trys.push([5,7,,8]),[4,this.getNegotiationResponse(e)];case 6:return s=y.sent(),[3,8];case 7:return p=y.sent(),[2,Promise.reject(p)];case 8:o=this.createConnectUrl(e,s.connectionToken),y.label=9;case 9:return y.trys.push([9,11,,12]),[4,this.startTransport(o,r)];case 10:return y.sent(),this.connectionId=s.connectionId,[2];case 11:return d=y.sent(),this.logger.log(f.a.Error,"Failed to start the transport '"+l.transport+"': "+d),s=void 0,i.push(l.transport+" failed: "+d),"Connecting"!==this.connectionState?(g="Failed to select transport before stop() was called.",this.logger.log(f.a.Debug,g),[2,Promise.reject(new Error(g))]):[3,12];case 12:return c++,[3,3];case 13:return i.length>0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+i.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case P.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new Y(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket,this.options.headers||{});case P.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new H(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource,this.options.withCredentials,this.options.headers||{});case P.LongPolling:return new B(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.withCredentials,this.options.headers||{});default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=P[e.transport];if(null==r)return this.logger.log(f.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it was disabled by the client."),new Error("'"+P[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return x[e]})).indexOf(n)>=0))return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it does not support the requested transfer format '"+x[n]+"'."),new Error("'"+P[r]+"' does not support "+x[n]+".");if(r===P.WebSockets&&!this.options.WebSocket||r===P.ServerSentEvents&&!this.options.EventSource)return this.logger.log(f.a.Debug,"Skipping transport '"+P[r]+"' because it is not supported in your environment.'"),new Error("'"+P[r]+"' is not supported in your environment.");this.logger.log(f.a.Debug,"Selecting transport '"+P[r]+"'.");try{return this.constructTransport(r)}catch(e){return e}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(f.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState){if("Connecting"===this.connectionState)throw this.logger.log(f.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is still in the connecting state."),new Error("HttpConnection.stopConnection("+e+") was called while the connection is still in the connecting state.");if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(f.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(f.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(f.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this.logger.log(f.a.Error,"HttpConnection.onclose("+e+") threw error '"+t+"'.")}}}else this.logger.log(f.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!h.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(f.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var G=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new Q,this.transportResult=new Q,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new Q),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return K(this,void 0,void 0,(function(){var t,n,r;return V(this,(function(o){switch(o.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(o.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new Q,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return o.sent(),t.resolve(),[3,5];case 4:return r=o.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,o=0,i=e;o<i.length;o++){var a=i[o];n.set(new Uint8Array(a),r),r+=a.byteLength}return n.buffer},e}(),Q=function(){function e(){var e=this;this.promise=new Promise((function(t,n){var r;return r=[t,n],e.resolver=r[0],e.rejecter=r[1],r}))}return e.prototype.resolve=function(){this.resolver()},e.prototype.reject=function(e){this.rejecter(e)},e}(),$=n(6),Z=n(7),ee=function(){function e(){this.name="json",this.version=1,this.transferFormat=x.Text}return e.prototype.parseMessages=function(e,t){if("string"!=typeof e)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!e)return[];null===t&&(t=$.a.instance);for(var n=[],r=0,o=Z.a.parse(e);r<o.length;r++){var i=o[r],a=JSON.parse(i);if("number"!=typeof a.type)throw new Error("Invalid payload.");switch(a.type){case b.Invocation:this.isInvocationMessage(a);break;case b.StreamItem:this.isStreamItemMessage(a);break;case b.Completion:this.isCompletionMessage(a);break;case b.Ping:case b.Close:break;default:t.log(f.a.Information,"Unknown message type '"+a.type+"' ignored.");continue}n.push(a)}return n},e.prototype.writeMessage=function(e){return Z.a.write(JSON.stringify(e))},e.prototype.isInvocationMessage=function(e){this.assertNotEmptyString(e.target,"Invalid payload for Invocation message."),void 0!==e.invocationId&&this.assertNotEmptyString(e.invocationId,"Invalid payload for Invocation message.")},e.prototype.isStreamItemMessage=function(e){if(this.assertNotEmptyString(e.invocationId,"Invalid payload for StreamItem message."),void 0===e.item)throw new Error("Invalid payload for StreamItem message.")},e.prototype.isCompletionMessage=function(e){if(e.result&&e.error)throw new Error("Invalid payload for Completion message.");!e.result&&e.error&&this.assertNotEmptyString(e.error,"Invalid payload for Completion message."),this.assertNotEmptyString(e.invocationId,"Invalid payload for Completion message.")},e.prototype.assertNotEmptyString=function(e,t){if("string"!=typeof e||""===e)throw new Error(t)},e}(),te=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ne={trace:f.a.Trace,debug:f.a.Debug,info:f.a.Information,information:f.a.Information,warn:f.a.Warning,warning:f.a.Warning,error:f.a.Error,critical:f.a.Critical,none:f.a.None};var re=function(){function e(){}return e.prototype.configureLogging=function(e){if(h.a.isRequired(e,"logging"),void 0!==e.log)this.logger=e;else if("string"==typeof e){var t=function(e){var t=ne[e.toLowerCase()];if(void 0!==t)return t;throw new Error("Unknown log level: "+e)}(e);this.logger=new h.b(t)}else this.logger=new h.b(e);return this},e.prototype.withUrl=function(e,t){return h.a.isRequired(e,"url"),h.a.isNotEmpty(e,"url"),this.url=e,this.httpConnectionOptions=te({},this.httpConnectionOptions,"object"==typeof t?t:{transport:t}),this},e.prototype.withHubProtocol=function(e){return h.a.isRequired(e,"protocol"),this.protocol=e,this},e.prototype.withAutomaticReconnect=function(e){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return e?Array.isArray(e)?this.reconnectPolicy=new L(e):this.reconnectPolicy=e:this.reconnectPolicy=new L,this},e.prototype.build=function(){var e=this.httpConnectionOptions||{};if(void 0===e.logger&&(e.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");var t=new X(this.url,e);return O.create(t,this.logger||$.a.instance,this.protocol||new ee,this.reconnectPolicy)},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){window.DotNet=e;var t=[],n={},r={},o=1,i=null;function a(e){t.push(e)}function s(e,t,n,r){var o=u();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,g),a=o.invokeDotNetFromJS(e,t,n,i);return a?f(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function c(e,t,r,i){if(e&&r)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var a=o++,s=new Promise((function(e,t){n[a]={resolve:e,reject:t}}));try{var c=JSON.stringify(i,g);u().beginInvokeDotNetFromJS(a,e,t,r,c)}catch(e){l(a,!1,e)}return s}function u(){if(null!==i)return i;throw new Error("No .NET call dispatcher has been set.")}function l(e,t,r){if(!n.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var o=n[e];delete n[e],t?o.resolve(r):o.reject(r)}function f(e){return e?JSON.parse(e,(function(e,n){return t.reduce((function(t,n){return n(e,t)}),n)})):null}function h(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function p(e){if(Object.prototype.hasOwnProperty.call(r,e))return r[e];var t,n=window,o="window";if(e.split(".").forEach((function(e){if(!(e in n))throw new Error("Could not find '"+e+"' in '"+o+"'.");t=n,n=n[e],o+="."+e})),n instanceof Function)return n=n.bind(t),r[e]=n,n;throw new Error("The value '"+o+"' is not a function.")}e.attachDispatcher=function(e){i=e},e.attachReviver=a,e.invokeMethod=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return s(e,t,null,n)},e.invokeMethodAsync=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return c(e,t,null,n)},e.jsCallDispatcher={findJSFunction:p,invokeJSFromDotNet:function(e,t){var n=p(e).apply(null,f(t));return null==n?null:JSON.stringify(n,g)},beginInvokeJSFromDotNet:function(e,t,n){var r=new Promise((function(e){e(p(t).apply(null,f(n)))}));e&&r.then((function(t){return u().endInvokeJSFromDotNet(e,!0,JSON.stringify([e,!0,t],g))}),(function(t){return u().endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,h(t)]))}))},endInvokeDotNetFromJS:function(e,t,n){var r=t?n:new Error(n);l(parseInt(e),t,r)}};var d=function(){function e(e){this._id=e}return e.prototype.invokeMethod=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return s(null,e,this._id,t)},e.prototype.invokeMethodAsync=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return c(null,e,this._id,t)},e.prototype.dispose=function(){c(null,"__Dispose",this._id,null).catch((function(e){return console.error(e)}))},e.prototype.serializeAsArg=function(){return{__dotNetObject:this._id}},e}();function g(e,t){return t instanceof d?t.serializeAsArg():t}a((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__dotNetObject")?new d(t.__dotNetObject):t}))}(t.DotNet||(t.DotNet={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(24),n(18);var r=n(25),o=n(13),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h<c;h++){var p=t.updatedComponentsEntry(s,h),d=f.componentId(p),g=f.edits(p);n.updateComponent(t,d,g,l)}var y=t.disposedComponentIds(),v=r.values(y),b=r.count(y);for(h=0;h<b;h++){d=t.disposedComponentIdsEntry(v,h);n.disposeComponent(d)}var m=t.disposedEventHandlerIds(),w=r.values(m),E=r.count(m);for(h=0;h<E;h++){var S=t.disposedEventHandlerIdsEntry(w,h);n.disposeEventHandler(S)}a&&(a=!1,window.scrollTo&&window.scrollTo(0,0))},t.resetScrollAfterNextBatch=function(){a=!0}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var o=0,i=!!localStorage.blazorProfilingEnabled,a=[],s=[];function c(e){if(o){var t=performance.now();s.push(e),a.push({name:e,type:"start",timestamp:t})}}function u(e){if(o){var t=performance.now(),n=s.pop();if(!n)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the stack was empty.");if(n!==e)throw new Error("Profiling mismatch: tried to end profiling for '"+f(e)+"', but the top stack item was '"+f(n)+"'.");a.push({name:e,type:"end",timestamp:t})}}function l(e){var t=document.createElement("div");t.textContent=e,t.setAttribute("style","position: absolute; z-index: 99999; font-family: 'Sans Serif'; top: 0; left: 0; padding: 4px; font-size: 12px; background-color: purple; color: white;"),document.body.appendChild(t),setTimeout((function(){return document.body.removeChild(t)}),3e3)}function f(e){return"string"==typeof e?e:BINDING.conv_string(e)}t.setProfilingEnabled=function(e){localStorage.blazorProfilingEnabled=!1!==e,location.reload()},t.initializeProfiling=function(e){if(i){r=e||function(){};var t=navigator.platform.match(/^Mac/i)?"Cmd":"Alt";console.info("Profiling hotkey: Shift+"+t+"+P (when application has focus)"),document.addEventListener("keydown",(function(e){var t,n,i,c;e.shiftKey&&(e.metaKey||e.altKey)&&"KeyP"===e.code&&(o?(l("Finished capturing performance profile"),t=a.map((function(e){return{name:f(e.name),cat:"PERF",ph:"start"===e.type?"B":"E",ts:1e3*(e.timestamp-o),pid:0,tid:0}})),n=JSON.stringify(t),i=(new TextEncoder).encode(n),(c=document.createElement("a")).href=URL.createObjectURL(new Blob([i])),c.setAttribute("download","trace.json"),c.click(),URL.revokeObjectURL(c.href),s.length=0,a.length=0,o=0,r(!1)):(l("Started capturing performance profile..."),r(!0),o=performance.now()))}))}},t.profileStart=c,t.profileEnd=u,window._blazorProfileStart=c,window._blazorProfileEnd=u},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),n(3);var i,a=n(4),s=!1,c=!1,u=null;function l(e,t,n){void 0===n&&(n=!1);var r=p(e);if(!t&&d(r))f(r,!1,n);else if(t&&location.href===e){var o=e+"?";history.replaceState(null,"",o),location.replace(e)}else n?history.replaceState(null,"",r):location.href=e}function f(e,t,n){void 0===n&&(n=!1),a.resetScrollAfterNextBatch(),n?history.replaceState(null,"",e):history.pushState(null,"",e),h(t)}function h(e){return r(this,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return u?[4,u(location.href,e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))}function p(e){return(i=i||document.createElement("a")).href=e,i.href}function d(e){var t,n=(t=document.baseURI).substr(0,t.lastIndexOf("/")+1);return e.startsWith(n)}t.internalFunctions={listenForNavigationEvents:function(e){if(u=e,c)return;c=!0,window.addEventListener("popstate",(function(){return h(!1)}))},enableNavigationInterception:function(){s=!0},navigateTo:l,getBaseURI:function(){return document.baseURI},getLocationHref:function(){return location.href}},t.attachToEventDelegator=function(e){e.notifyAfterClick((function(e){if(s&&0===e.button&&!function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e)&&!e.defaultPrevented){var t=function e(t,n){return t?t.tagName===n?t:e(t.parentElement,n):null}(e.target,"A");if(t&&t.hasAttribute("href")){var n=t.getAttribute("target");if(!(!n||"_self"===n))return;var r=p(t.getAttribute("href"));d(r)&&(e.preventDefault(),f(r,!0))}}}))},t.navigateTo=l,t.toAbsoluteUri=p},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(22),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=n(20);i.inherits=n(16);var a=n(37),s=n(42);i.inherits(f,a);for(var c=o(s.prototype),u=0;u<c.length;u++){var l=c[u];f.prototype[l]||(f.prototype[l]=s.prototype[l])}function f(e){if(!(this instanceof f))return new f(e);a.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",h)}function h(){this.allowHalfOpen||this._writableState.ended||r.nextTick(p,this)}function p(e){e.end()}Object.defineProperty(f.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(f.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),f.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <http://feross.org> * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return u(this,e,t,n)}function u(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=s(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):h(e,t);if("Buffer"===t.type&&i(t.data))return h(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function h(e,t){var n=t.length<0?0:0|p(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(u(e,i)===u(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===c)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+c>s&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;h<c;h++)if(u(e,i+h)!==u(t,h)){f=!1;break}if(f)return i}return-1}function m(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function w(e,t,n,r){return q(F(t,e.length-n),e,n,r)}function E(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function S(e,t,n,r){return E(e,t,n,r)}function C(e,t,n,r){return q(H(t),e,n,r)}function I(e,t,n,r){return q(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,c,u=e[o],l=null,f=u>239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return f(null,e)},c.allocUnsafeSlow=function(e){return f(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},c.byteLength=d,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)y(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)y(this,t,t+3),y(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;f<s;++f)if(u[f]!==l[f]){i=u[f],a=l[f];break}return i<a?-1:a<i?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=U(e[i]);return o}function O(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function R(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var o=t-e;n=new c(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=c.isBuffer(e)?e:F(new c(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var N=/[^+\/0-9A-Za-z-_]/g;function U(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else h(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function c(e){return e[o]||null}function u(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=u(c(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function h(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):h(e,c(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=u(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=u(t).splice(n,1)[0];if(r instanceof Comment){var o=u(r);if(o)for(;o.length>0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new d(e,t)),1!==u.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(11).Buffer)},function(e,t,n){var r=n(61),o=n(36),i=n(15).Buffer;function a(e){if(!(this instanceof a))return new a(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);r.call(this)}o.inherits(a,r),a.prototype._offset=function(e){var t,n=0,r=0;if(0===e)return[0,0];for(;r<this._bufs.length;r++){if(e<(t=n+this._bufs[r].length)||r==this._bufs.length-1)return[r,e-n];n=t}},a.prototype.append=function(e){var t=0;if(i.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof a)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(i.from(e)));return this},a.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},a.prototype._write=function(e,t,n){this._appendBuffer(e),"function"==typeof n&&n()},a.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},a.prototype.end=function(e){r.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},a.prototype.get=function(e){return this.slice(e,e+1)[0]},a.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},a.prototype.copy=function(e,t,n,r){if(("number"!=typeof n||n<0)&&(n=0),("number"!=typeof r||r>this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a<this._bufs.length;a++)this._bufs[a].copy(e,f),f+=this._bufs[a].length;return e}if(l<=this._bufs[c[0]].length-h)return s?this._bufs[c[0]].copy(e,t,h,h+l):this._bufs[c[0]].slice(h,h+l);for(s||(e=i.allocUnsafe(u)),a=c[0];a<this._bufs.length;a++){if(!(l>(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},a.prototype.destroy=function(){this._bufs.length=0,this.length=0,this.push(null)},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};for(var t in e)!function(t){a.prototype[t]=function(n){return this.slice(n,n+e[t])[t](0)}}(t)}(),e.exports=a},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,n)}));case 3:return t.nextTick((function(){e.call(null,n,r)}));case 4:return t.nextTick((function(){e.call(null,n,r,o)}));default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick((function(){e.apply(null,i)}))}}}:e.exports=t}).call(this,n(14))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),c=n(8),u=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),h={submit:!0},p={},d=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){h[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),c.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){u.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var c=i.getClosestDomElement(o).ownerDocument,l=c&&c.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&c&&c.activeElement!==l&&l.focus(),u.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var c,u=0,l=o,f=e.arrayBuilderSegmentReader,h=e.editReader,p=e.frameReader,d=f.values(a),g=f.offset(a),y=g+f.count(a),v=g;v<y;v++){var b=e.diffReader.editsEntry(d,v),m=h.editType(b);switch(m){case r.EditType.prependFrame:var w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);this.insertFrame(e,t,n,l+S,s,E,w);break;case r.EditType.removeFrame:S=h.siblingIndex(b);i.removeLogicalChild(n,l+S);break;case r.EditType.setAttribute:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=h.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);var _=i.getLogicalChild(n,l+S);if(!(_ instanceof Text))throw new Error("Cannot set text content on non-text child");_.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);i.removeLogicalChild(n,l+S),this.insertMarkup(e,n,l+S,E);break;case r.EditType.stepIn:S=h.siblingIndex(b);n=i.getLogicalChild(n,l+S),u++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--u?o:0;break;case r.EditType.permutationListEntry:(c=c||[]).push({fromSiblingIndex:l+h.siblingIndex(b),toSiblingIndex:l+h.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,c),c=void 0;break;default:throw new Error("Unknown edit type: "+m)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,c){var u=e.frameReader,l=u.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,c),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,c+1,c+u.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,u.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,c){var u=e.frameReader,l=u.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),h=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=c+u.subtreeLength(s),d=c+1;d<p;d++){var g=e.referenceFramesEntry(a,d);if(u.frameType(g)!==r.FrameType.attribute){this.insertFrameRange(e,t,h,0,a,d,p);break}this.applyAttribute(e,t,f,g)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&v(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),c=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),u=0;c.firstChild;)i.insertLogicalChild(c.firstChild,a,u++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=y(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=y(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=y(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(v(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,c=i;c<a;c++){var u=e.referenceFramesEntry(o,c);r+=this.insertFrame(e,t,n,r,o,u,c),c+=g(e,u)}return r-s},e}();function g(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function y(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function v(e,t){e.value=t||""}t.BrowserRenderer=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new c(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,c=null,u=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var h=f.getHandler(e.type);if(h&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){c||(c=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(h.renderingComponentId,e);this.onEvent(e,h.eventHandlerId,c,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=u||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new u:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var c=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),u=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var c=63&e[t++],u=(7&i)<<18|a<<12|s<<6|c;u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n<i;c=r[++n])g(c)||!w(c)?a+=" "+c:a+=" "+s(c);return a},t.deprecate=function(n,r){if(void 0!==e&&!0===e.noDeprecation)return n;if(void 0===e)return function(){return t.deprecate(n,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),o=!0}return n.apply(this,arguments)}};var i,a={};function s(e,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a<s;++a)P(t,String(a))?i.push(h(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(h(e,t,n,r,o,!0))})),i}(e,n,r,s,a):a.map((function(t){return h(e,n,r,s,t,I)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),x&&Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=x,t.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then((function(t){e.nextTick(a,null,t)}),(function(t){e.nextTick(O,t,a)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.defineProperties(n,r(t)),n}}).call(this,n(14))},function(e,t,n){"use strict";(function(t,r){var o=n(22);e.exports=m;var i,a=n(62);m.ReadableState=b;n(38).EventEmitter;var s=function(e,t){return e.listeners(t).length},c=n(39),u=n(15).Buffer,l=t.Uint8Array||function(){};var f=n(20);f.inherits=n(16);var h=n(63),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var d,g=n(64),y=n(40);f.inherits(m,c);var v=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(10));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(41).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function m(e){if(i=i||n(10),!(this instanceof m))return new m(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,C(e)}(e,a)):(o||(i=function(e,t){var n;r=t,u.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function E(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&C(e)),_(e,t)}Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),m.prototype.destroy=y.destroy,m.prototype._undestroy=y.undestroy,m.prototype._destroy=function(e,t){this.push(null),t(e)},m.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=u.from(e,t),t=""),n=!0),w(this,e,t,!1,n)},m.prototype.unshift=function(e){return w(this,e,null,!0,!1)},m.prototype.isPaused=function(){return!1===this._readableState.flowing},m.prototype.setEncoding=function(e){return d||(d=n(41).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};function S(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(p("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function T(e){p("readable nexttick read 0"),e.read(0)}function P(e,t){t.reading||(p("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(p("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}m.prototype.read=function(e){p("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&p("length less than watermark",o=!0),t.ended||t.reading?p("reading or ended",o=!1):o&&(p("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=S(n,t))),null===(r=e>0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=D(t.pipes,e);return-1===a||(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},m.prototype.on=function(e,t){var n=c.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&C(this):o.nextTick(T,this))}return n},m.prototype.addListener=m.prototype.on,m.prototype.resume=function(){var e=this._readableState;return e.flowing||(p("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(P,e,t))}(this,e)),this},m.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this},m.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",(function(){if(p("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(p("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<v.length;i++)e.on(v[i],this.emit.bind(this,v[i]));return this._read=function(t){p("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(m.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),m._fromList=O}).call(this,n(9),n(14))},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function f(e,t,n,r){var o,i,a,s;if(u(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=l(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):y(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function y(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n<u;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return f(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return f(this,e,t,!0)},s.prototype.once=function(e,t){return u(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else m(e,t,!1,s,r,o,i);return c}(this,o,s,e,t,n)),a},b.prototype.cork=function(){this._writableState.corked++},b.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||E(this,e))},b.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,n){c(e,t,n)})):c(this,null,null)}function c(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(16),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,(function(e){t(e),n.emit("close")}))}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return i}));var r=n(7),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.i)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,"__esModule",{value:!0});var s=n(3);n(23);var c=n(2),u=n(83),l=n(32),f=n(35),h=n(75),p=n(77),d=n(17),g=n(78),y=n(19),v=n(79),b=n(80),m=n(4),w=n(5),E=!1,S=!1;function C(e){return r(this,void 0,void 0,(function(){var t,n,i,a,s,c,u,l,f=this;return o(this,(function(h){switch(h.label){case 0:if(S)throw new Error("Blazor has already started.");return S=!0,w.initializeProfiling(null),t=v.resolveOptions(e),n=new p.ConsoleLogger(t.logLevel),window.Blazor.defaultReconnectionHandler=new b.DefaultReconnectionHandler(n),t.reconnectionHandler=t.reconnectionHandler||window.Blazor.defaultReconnectionHandler,n.log(d.LogLevel.Information,"Starting up blazor server-side application."),i=g.discoverComponents(document),a=new g.CircuitDescriptor(i),[4,I(t,n,a)];case 1:return s=h.sent(),[4,a.startCircuit(s)];case 2:return h.sent()?(c=function(e){return r(f,void 0,void 0,(function(){var r,i;return o(this,(function(o){switch(o.label){case 0:return E?[2,!1]:(i=e)?[3,2]:[4,I(t,n,a)];case 1:i=o.sent(),o.label=2;case 2:return r=i,[4,a.reconnect(r)];case 3:return o.sent()?(t.reconnectionHandler.onConnectionUp(),[2,!0]):(n.log(d.LogLevel.Information,"Reconnection attempt to the circuit was rejected by the server. This may indicate that the associated state is no longer available on the server."),[2,!1])}}))}))},u=!1,l=function(){if(!u){var e=new FormData,t=a.circuitId;e.append("circuitId",t),u=navigator.sendBeacon("_blazor/disconnect",e)}},window.addEventListener("beforeunload",l,{capture:!1,once:!0}),window.addEventListener("unload",l,{capture:!1,once:!0}),window.Blazor.reconnect=c,n.log(d.LogLevel.Information,"Blazor server-side application started."),[2]):(n.log(d.LogLevel.Error,"Failed to start the circuit."),[2])}}))}))}function I(e,t,n){return r(this,void 0,void 0,(function(){var r,i,f,p,g;return o(this,(function(o){switch(o.label){case 0:(r=new u.MessagePackHubProtocol).name="blazorpack",i=(new c.HubConnectionBuilder).withUrl("_blazor").withHubProtocol(r),e.configureSignalR(i),f=i.build(),y.setEventDispatcher((function(e,t){f.send("DispatchBrowserEvent",JSON.stringify(e),JSON.stringify(t))})),window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return f.send("OnLocationChanged",e,t)})),f.on("JS.AttachComponent",(function(e,t){return m.attachRootComponentToLogicalElement(0,n.resolveElement(t),e)})),f.on("JS.BeginInvokeJS",s.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet),f.on("JS.EndInvokeDotNet",(function(e){var t;return(t=s.DotNet.jsCallDispatcher).endInvokeDotNetFromJS.apply(t,a(JSON.parse(e)))})),p=h.RenderQueue.getOrCreate(t),f.on("JS.RenderBatch",(function(e,n){t.log(d.LogLevel.Debug,"Received render batch with id "+e+" and "+n.byteLength+" bytes."),p.processBatch(e,n,f)})),f.onclose((function(t){return!E&&e.reconnectionHandler.onConnectionDown(e.reconnectionOptions,t)})),f.on("JS.Error",(function(e){E=!0,_(f,e,t),l.showErrorNotification()})),window.Blazor._internal.forceCloseConnection=function(){return f.stop()},o.label=1;case 1:return o.trys.push([1,3,,4]),[4,f.start()];case 2:return o.sent(),[3,4];case 3:return g=o.sent(),_(f,g,t),[3,4];case 4:return s.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,r,o){f.send("BeginInvokeDotNetFromJS",e?e.toString():null,t,n,r||0,o)},endInvokeJSFromDotNet:function(e,t,n){f.send("EndInvokeJSFromDotNet",e,t,n)}}),[2,f]}}))}))}function _(e,t,n){n.log(d.LogLevel.Error,t),e&&e.stop()}window.Blazor.start=C,f.shouldAutoStart()&&C()},function(e,t,n){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=u(e),a=r[0],s=r[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),l=0,f=s>0?a-4:a;for(n=0;n<f;n+=4)t=o[e.charCodeAt(n)]<<18|o[e.charCodeAt(n+1)]<<12|o[e.charCodeAt(n+2)]<<6|o[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s<c;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<<s)-1,u=c>>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<<u)-1,f=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<<o|s,u+=o;u>0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return u(this,e,t,n)}function u(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|p(t.length);return 0===(e=s(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):h(e,t);if("Buffer"===t.type&&i(t.data))return h(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|p(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function h(e,t){var n=t.length<0?0:0|p(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(u(e,i)===u(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===c)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+c>s&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;h<c;h++)if(u(e,i+h)!==u(t,h)){f=!1;break}if(f)return i}return-1}function m(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function w(e,t,n,r){return q(F(t,e.length-n),e,n,r)}function E(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function S(e,t,n,r){return E(e,t,n,r)}function C(e,t,n,r){return q(H(t),e,n,r)}function I(e,t,n,r){return q(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,c,u=e[o],l=null,f=u>239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return f(null,e)},c.allocUnsafeSlow=function(e){return f(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},c.byteLength=d,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)y(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)y(this,t,t+3),y(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)y(this,t,t+7),y(this,t+1,t+6),y(this,t+2,t+5),y(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):g.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;f<s;++f)if(u[f]!==l[f]){i=u[f],a=l[f];break}return i<a?-1:a<i?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=N(e[i]);return o}function O(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function R(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function j(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return i||j(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||j(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var o=t-e;n=new c(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=c.isBuffer(e)?e:F(new c(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var U=/[^+\/0-9A-Za-z-_]/g;function N(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(57),i=n(21),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=p("_blazorLogicalChildren"),o=p("_blazorLogicalParent"),i=p("_blazorLogicalEnd");function a(e,t){if(e.childNodes.length>0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(u(i)&&u(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(c(i))throw new Error("Not implemented: moving existing logical children");var a=u(t);if(n<a.length){var s=a[n];s.parentNode.insertBefore(e,s),a.splice(n,0,i)}else h(e,t),a.push(i);i[o]=t,r in i||(i[r]=[])}function c(e){return e[o]||null}function u(e){return e[r]}function l(e){if(e instanceof Element)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function f(e){var t=u(c(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function h(e,t){if(t instanceof Element)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error("Cannot append node because the parent is not a valid logical element. Parent: "+t);var n=f(t);n?n.parentNode.insertBefore(e,n):h(e,c(t))}}function p(e){return"function"==typeof Symbol?Symbol():e}t.toLogicalRootCommentElement=function(e,t){if(!e.parentNode)throw new Error("Comment not connected to the DOM "+e.textContent);var n=e.parentNode,r=a(n,!0),s=u(r);return Array.from(n.childNodes).forEach((function(e){return s.push(e)})),e[o]=r,t&&(e[i]=t,a(t)),a(e)},t.toLogicalElement=a,t.createAndInsertLogicalContainer=function(e,t){var n=document.createComment("!");return s(n,e,t),n},t.insertLogicalChild=s,t.removeLogicalChild=function e(t,n){var r=u(t).splice(n,1)[0];if(r instanceof Comment){var o=u(r);if(o)for(;o.length>0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=c,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return u(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=u,t.permuteLogicalChildren=function(e,t){var n=u(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=c(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):h(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new d(e,t)),1!==u.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setPlatform=function(e){return t.platform=e,t.platform}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchEvent=function(e,t){if(!r)throw new Error("eventDispatcher not initialized. Call 'setEventDispatcher' to configure it.");r(e,t)},t.setEventDispatcher=function(e){r=e}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(11).Buffer)},function(e,t,n){var r=n(61),o=n(36),i=n(15).Buffer;function a(e){if(!(this instanceof a))return new a(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);r.call(this)}o.inherits(a,r),a.prototype._offset=function(e){var t,n=0,r=0;if(0===e)return[0,0];for(;r<this._bufs.length;r++){if(e<(t=n+this._bufs[r].length)||r==this._bufs.length-1)return[r,e-n];n=t}},a.prototype.append=function(e){var t=0;if(i.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof a)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(i.from(e)));return this},a.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},a.prototype._write=function(e,t,n){this._appendBuffer(e),"function"==typeof n&&n()},a.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},a.prototype.end=function(e){r.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},a.prototype.get=function(e){return this.slice(e,e+1)[0]},a.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},a.prototype.copy=function(e,t,n,r){if(("number"!=typeof n||n<0)&&(n=0),("number"!=typeof r||r>this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a<this._bufs.length;a++)this._bufs[a].copy(e,f),f+=this._bufs[a].length;return e}if(l<=this._bufs[c[0]].length-h)return s?this._bufs[c[0]].copy(e,t,h,h+l):this._bufs[c[0]].slice(h,h+l);for(s||(e=i.allocUnsafe(u)),a=c[0];a<this._bufs.length;a++){if(!(l>(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},a.prototype.destroy=function(){this._bufs.length=0,this.length=0,this.push(null)},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};for(var t in e)!function(t){a.prototype[t]=function(n){return this.slice(n,n+e[t])[t](0)}}(t)}(),e.exports=a},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,n)}));case 3:return t.nextTick((function(){e.call(null,n,r)}));case 4:return t.nextTick((function(){e.call(null,n,r,o)}));default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick((function(){e.apply(null,i)}))}}}:e.exports=t}).call(this,n(14))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8),o=n(4),i=n(31),a=n(5);window.Blazor={navigateTo:r.navigateTo,_internal:{attachRootComponentToElement:o.attachRootComponentToElement,navigationManager:r.internalFunctions,domWrapper:i.domFunctions,setProfilingEnabled:a.setProfilingEnabled}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(26),o=n(27),i=n(13),a=n(30),s=n(19),c=n(8),u=n(5),l=document.createElement("template"),f=document.createElementNS("http://www.w3.org/2000/svg","g"),h={submit:!0},p={},d=function(){function e(e){var t=this;this.childComponentLocations={},this.browserRendererId=e,this.eventDelegator=new o.EventDelegator((function(e,n,r,o){!function(e,t,n,r,o){h[e.type]&&e.preventDefault();var i={browserRendererId:t,eventHandlerId:n,eventArgsType:r.type,eventFieldInfo:o};s.dispatchEvent(i,r.data)}(e,t.browserRendererId,n,r,o)})),c.attachToEventDelegator(this.eventDelegator)}return e.prototype.attachRootComponentToLogicalElement=function(e,t){this.attachComponentToElement(e,t),p[e]=t},e.prototype.updateComponent=function(e,t,n,r){u.profileStart("updateComponent");var o=this.childComponentLocations[t];if(!o)throw new Error("No element is currently associated with component "+t);var a=p[t];if(a){var s=i.getLogicalSiblingEnd(a);delete p[t],s?function(e,t){var n=i.getLogicalParent(e);if(!n)throw new Error("Can't clear between nodes. The start node does not have a logical parent.");for(var r=i.getLogicalChildrenArray(n),o=r.indexOf(e)+1,a=r.indexOf(t),s=o;s<=a;s++)i.removeLogicalChild(n,o);e.textContent="!"}(a,s):function(e){var t;for(;t=e.firstChild;)e.removeChild(t)}(a)}var c=i.getClosestDomElement(o).ownerDocument,l=c&&c.activeElement;this.applyEdits(e,t,o,0,n,r),l instanceof HTMLElement&&c&&c.activeElement!==l&&l.focus(),u.profileEnd("updateComponent")},e.prototype.disposeComponent=function(e){delete this.childComponentLocations[e]},e.prototype.disposeEventHandler=function(e){this.eventDelegator.removeListener(e)},e.prototype.attachComponentToElement=function(e,t){this.childComponentLocations[e]=t},e.prototype.applyEdits=function(e,t,n,o,a,s){for(var c,u=0,l=o,f=e.arrayBuilderSegmentReader,h=e.editReader,p=e.frameReader,d=f.values(a),g=f.offset(a),y=g+f.count(a),v=g;v<y;v++){var b=e.diffReader.editsEntry(d,v),m=h.editType(b);switch(m){case r.EditType.prependFrame:var w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);this.insertFrame(e,t,n,l+S,s,E,w);break;case r.EditType.removeFrame:S=h.siblingIndex(b);i.removeLogicalChild(n,l+S);break;case r.EditType.setAttribute:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof Element))throw new Error("Cannot set attribute on non-element child");this.applyAttribute(e,t,C,E);break;case r.EditType.removeAttribute:var C;S=h.siblingIndex(b);if(!((C=i.getLogicalChild(n,l+S))instanceof HTMLElement))throw new Error("Cannot remove attribute from non-element child");var I=h.removedAttributeName(b);this.tryApplySpecialProperty(e,C,I,null)||C.removeAttribute(I);break;case r.EditType.updateText:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);var _=i.getLogicalChild(n,l+S);if(!(_ instanceof Text))throw new Error("Cannot set text content on non-text child");_.textContent=p.textContent(E);break;case r.EditType.updateMarkup:w=h.newTreeIndex(b),E=e.referenceFramesEntry(s,w),S=h.siblingIndex(b);i.removeLogicalChild(n,l+S),this.insertMarkup(e,n,l+S,E);break;case r.EditType.stepIn:S=h.siblingIndex(b);n=i.getLogicalChild(n,l+S),u++,l=0;break;case r.EditType.stepOut:n=i.getLogicalParent(n),l=0===--u?o:0;break;case r.EditType.permutationListEntry:(c=c||[]).push({fromSiblingIndex:l+h.siblingIndex(b),toSiblingIndex:l+h.moveToSiblingIndex(b)});break;case r.EditType.permutationListEnd:i.permuteLogicalChildren(n,c),c=void 0;break;default:throw new Error("Unknown edit type: "+m)}}},e.prototype.insertFrame=function(e,t,n,o,i,s,c){var u=e.frameReader,l=u.frameType(s);switch(l){case r.FrameType.element:return this.insertElement(e,t,n,o,i,s,c),1;case r.FrameType.text:return this.insertText(e,n,o,s),1;case r.FrameType.attribute:throw new Error("Attribute frames should only be present as leading children of element frames.");case r.FrameType.component:return this.insertComponent(e,n,o,s),1;case r.FrameType.region:return this.insertFrameRange(e,t,n,o,i,c+1,c+u.subtreeLength(s));case r.FrameType.elementReferenceCapture:if(n instanceof Element)return a.applyCaptureIdToElement(n,u.elementReferenceCaptureId(s)),0;throw new Error("Reference capture frames can only be children of element frames.");case r.FrameType.markup:return this.insertMarkup(e,n,o,s),1;default:throw new Error("Unknown frame type: "+l)}},e.prototype.insertElement=function(e,t,n,o,a,s,c){var u=e.frameReader,l=u.elementName(s),f="svg"===l||i.isSvgElement(n)?document.createElementNS("http://www.w3.org/2000/svg",l):document.createElement(l),h=i.toLogicalElement(f);i.insertLogicalChild(f,n,o);for(var p=c+u.subtreeLength(s),d=c+1;d<p;d++){var g=e.referenceFramesEntry(a,d);if(u.frameType(g)!==r.FrameType.attribute){this.insertFrameRange(e,t,h,0,a,d,p);break}this.applyAttribute(e,t,f,g)}f instanceof HTMLSelectElement&&"_blazorSelectValue"in f&&v(f,f._blazorSelectValue)},e.prototype.insertComponent=function(e,t,n,r){var o=i.createAndInsertLogicalContainer(t,n),a=e.frameReader.componentId(r);this.attachComponentToElement(a,o)},e.prototype.insertText=function(e,t,n,r){var o=e.frameReader.textContent(r),a=document.createTextNode(o);i.insertLogicalChild(a,t,n)},e.prototype.insertMarkup=function(e,t,n,r){for(var o,a=i.createAndInsertLogicalContainer(t,n),s=e.frameReader.markupContent(r),c=(o=s,i.isSvgElement(t)?(f.innerHTML=o||" ",f):(l.innerHTML=o||" ",l.content)),u=0;c.firstChild;)i.insertLogicalChild(c.firstChild,a,u++)},e.prototype.applyAttribute=function(e,t,n,r){var o=e.frameReader,i=o.attributeName(r),a=o.attributeEventHandlerId(r);if(a){var s=y(i);this.eventDelegator.setListener(n,s,a,t)}else this.tryApplySpecialProperty(e,n,i,r)||n.setAttribute(i,o.attributeValue(r))},e.prototype.tryApplySpecialProperty=function(e,t,n,r){switch(n){case"value":return this.tryApplyValueProperty(e,t,r);case"checked":return this.tryApplyCheckedProperty(e,t,r);default:return!!n.startsWith("__internal_")&&(this.applyInternalAttribute(e,t,n.substring("__internal_".length),r),!0)}},e.prototype.applyInternalAttribute=function(e,t,n,r){var o=r?e.frameReader.attributeValue(r):null;if(n.startsWith("stopPropagation_")){var i=y(n.substring("stopPropagation_".length));this.eventDelegator.setStopPropagation(t,i,null!==o)}else{if(!n.startsWith("preventDefault_"))throw new Error("Unsupported internal attribute '"+n+"'");i=y(n.substring("preventDefault_".length));this.eventDelegator.setPreventDefault(t,i,null!==o)}},e.prototype.tryApplyValueProperty=function(e,t,n){var r=e.frameReader;if("INPUT"===t.tagName&&"time"===t.getAttribute("type")&&!t.getAttribute("step")){var o=n?r.attributeValue(n):null;if(o)return t.value=o.substring(0,5),!0}switch(t.tagName){case"INPUT":case"SELECT":case"TEXTAREA":var i=n?r.attributeValue(n):null;return t instanceof HTMLSelectElement?(v(t,i),t._blazorSelectValue=i):t.value=i,!0;case"OPTION":(i=n?r.attributeValue(n):null)||""===i?t.setAttribute("value",i):t.removeAttribute("value");var a=this.findClosestAncestorSelectElement(t);return a&&"_blazorSelectValue"in a&&a._blazorSelectValue===i&&(this.tryApplyValueProperty(e,a,n),delete a._blazorSelectValue),!0;default:return!1}},e.prototype.tryApplyCheckedProperty=function(e,t,n){if("INPUT"===t.tagName){var r=n?e.frameReader.attributeValue(n):null;return t.checked=null!==r,!0}return!1},e.prototype.findClosestAncestorSelectElement=function(e){for(;e;){if(e instanceof HTMLSelectElement)return e;e=e.parentElement}return null},e.prototype.insertFrameRange=function(e,t,n,r,o,i,a){for(var s=r,c=i;c<a;c++){var u=e.referenceFramesEntry(o,c);r+=this.insertFrame(e,t,n,r,o,u,c),c+=g(e,u)}return r-s},e}();function g(e,t){var n=e.frameReader;switch(n.frameType(t)){case r.FrameType.component:case r.FrameType.element:case r.FrameType.region:return n.subtreeLength(t)-1;default:return 0}}function y(e){if(e.startsWith("on"))return e.substring(2);throw new Error("Attribute should be an event name, but doesn't start with 'on'. Value: '"+e+"'")}function v(e,t){e.value=t||""}t.BrowserRenderer=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t.EditType||(t.EditType={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup"}(t.FrameType||(t.FrameType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(28),o=n(29),i=l(["abort","blur","change","error","focus","load","loadend","loadstart","mouseenter","mouseleave","progress","reset","scroll","submit","unload","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),a=l(["click","dblclick","mousedown","mousemove","mouseup"]),s=function(){function e(t){this.onEvent=t,this.afterClickCallbacks=[];var n=++e.nextEventDelegatorId;this.eventsCollectionKey="_blazorEvents_"+n,this.eventInfoStore=new c(this.onGlobalEvent.bind(this))}return e.prototype.setListener=function(e,t,n,r){var o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{var a={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(a),o.setHandler(t,a)}},e.prototype.removeListener=function(e){var t=this.eventInfoStore.remove(e);if(t){var n=t.element,r=this.getEventHandlerInfosForElement(n,!1);r&&r.removeHandler(t.eventName)}},e.prototype.notifyAfterClick=function(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")},e.prototype.setStopPropagation=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)},e.prototype.setPreventDefault=function(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)},e.prototype.onGlobalEvent=function(e){if(e.target instanceof Element){for(var t,n,s=e.target,c=null,u=i.hasOwnProperty(e.type),l=!1;s;){var f=this.getEventHandlerInfosForElement(s,!1);if(f){var h=f.getHandler(e.type);if(h&&(t=s,n=e.type,!((t instanceof HTMLButtonElement||t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)&&a.hasOwnProperty(n)&&t.disabled))){c||(c=r.EventForDotNet.fromDOMEvent(e));var p=o.EventFieldInfo.fromEvent(h.renderingComponentId,e);this.onEvent(e,h.eventHandlerId,c,p)}f.stopPropagation(e.type)&&(l=!0),f.preventDefault(e.type)&&e.preventDefault()}s=u||l?null:s.parentElement}"click"===e.type&&this.afterClickCallbacks.forEach((function(t){return t(e)}))}},e.prototype.getEventHandlerInfosForElement=function(e,t){return e.hasOwnProperty(this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new u:null},e.nextEventDelegatorId=0,e}();t.EventDelegator=s;var c=function(){function e(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={}}return e.prototype.add=function(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error("Event "+e.eventHandlerId+" is already tracked");this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)},e.prototype.addGlobalListener=function(e){if(this.countByEventName.hasOwnProperty(e))this.countByEventName[e]++;else{this.countByEventName[e]=1;var t=i.hasOwnProperty(e);document.addEventListener(e,this.globalListener,t)}},e.prototype.update=function(e,t){if(this.infosByEventHandlerId.hasOwnProperty(t))throw new Error("Event "+t+" is already tracked");var n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n},e.prototype.remove=function(e){var t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];var n=t.eventName;0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t},e}(),u=function(){function e(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}return e.prototype.getHandler=function(e){return this.handlers.hasOwnProperty(e)?this.handlers[e]:null},e.prototype.setHandler=function(e,t){this.handlers[e]=t},e.prototype.removeHandler=function(e){delete this.handlers[e]},e.prototype.preventDefault=function(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]},e.prototype.stopPropagation=function(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]},e}();function l(e){var t={};return e.forEach((function(e){t[e]=!0})),t}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.type=e,this.data=t}return e.fromDOMEvent=function(t){var n=t.target;switch(t.type){case"input":case"change":if(function(e){return-1!==a.indexOf(e.getAttribute("type"))}(n)){var o=function(e){var t=e.value,n=e.type;switch(n){case"date":case"datetime-local":case"month":return t;case"time":return 5===t.length?t+":00":t;case"week":return t}throw new Error("Invalid element type '"+n+"'.")}(n);return new e("change",{type:t.type,value:o})}var s=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(n)?!!n.checked:n.value;return new e("change",{type:t.type,value:s});case"copy":case"cut":case"paste":return new e("clipboard",{type:t.type});case"drag":case"dragend":case"dragenter":case"dragleave":case"dragover":case"dragstart":case"drop":return new e("drag",function(e){return r(r({},i(e)),{dataTransfer:e.dataTransfer})}(t));case"focus":case"blur":case"focusin":case"focusout":return new e("focus",{type:t.type});case"keydown":case"keyup":case"keypress":return new e("keyboard",function(e){return{type:e.type,key:e.key,code:e.code,location:e.location,repeat:e.repeat,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"contextmenu":case"click":case"mouseover":case"mouseout":case"mousemove":case"mousedown":case"mouseup":case"dblclick":return new e("mouse",i(t));case"error":return new e("error",function(e){return{type:e.type,message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno}}(t));case"loadstart":case"timeout":case"abort":case"load":case"loadend":case"progress":return new e("progress",function(e){return{type:e.type,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total}}(t));case"touchcancel":case"touchend":case"touchmove":case"touchenter":case"touchleave":case"touchstart":return new e("touch",function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push({identifier:r.identifier,clientX:r.clientX,clientY:r.clientY,screenX:r.screenX,screenY:r.screenY,pageX:r.pageX,pageY:r.pageY})}return t}return{type:e.type,detail:e.detail,touches:t(e.touches),targetTouches:t(e.targetTouches),changedTouches:t(e.changedTouches),ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}(t));case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointerenter":case"pointerleave":case"pointermove":case"pointerout":case"pointerover":case"pointerup":return new e("pointer",function(e){return r(r({},i(e)),{pointerId:e.pointerId,width:e.width,height:e.height,pressure:e.pressure,tiltX:e.tiltX,tiltY:e.tiltY,pointerType:e.pointerType,isPrimary:e.isPrimary})}(t));case"wheel":case"mousewheel":return new e("wheel",function(e){return r(r({},i(e)),{deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode})}(t));default:return new e("unknown",{type:t.type})}},e}();function i(e){return{type:e.type,detail:e.detail,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,offsetX:e.offsetX,offsetY:e.offsetY,button:e.button,buttons:e.buttons,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey}}t.EventForDotNet=o;var a=["date","datetime-local","month","time","week"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.componentId=e,this.fieldValue=t}return e.fromEvent=function(t,n){var r=n.target;if(r instanceof Element){var o=function(e){if(e instanceof HTMLInputElement)return e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value};if(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)return{value:e.value};return null}(r);if(o)return new e(t,o.value)}return null},e}();t.EventFieldInfo=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);function o(e){return"_bl_"+e}t.applyCaptureIdToElement=function(e,t){e.setAttribute(o(t),"")};r.DotNet.attachReviver((function(e,t){return t&&"object"==typeof t&&t.hasOwnProperty("__internalId")&&"string"==typeof t.__internalId?(n=t.__internalId,r="["+o(n)+"]",document.querySelector(r)):t;var n,r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(3),t.domFunctions={focus:function(e){if(!(e instanceof HTMLElement))throw new Error("Unable to focus an invalid element.");e.focus()}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=!1;t.showErrorNotification=function(){return r(this,void 0,void 0,(function(){var e;return o(this,(function(t){return(e=document.querySelector("#blazor-error-ui"))&&(e.style.display="block"),i||(i=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((function(e){e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((function(e){e.onclick=function(e){var t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}}))),[2]}))}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Math.pow(2,32),o=Math.pow(2,21)-1;function i(e,t){return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24>>>0)}t.readInt32LE=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},t.readUint32LE=i,t.readUint64LE=function(e,t){var n=i(e,t+4);if(n>o)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*r+i(e,t)},t.readLEB128=function(e,t){for(var n=0,r=0,o=0;o<4;o++){var i=e[t+o];if(n|=(127&i)<<r,i<128)break;r+=7}return n},t.numLEB128Bytes=function(e){return e<128?1:e<16384?2:e<2097152?3:4}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof TextDecoder?new TextDecoder("utf-8"):null;t.decodeUtf8=r?r.decode.bind(r):function(e){var t=0,n=e.length,r=[],o=[];for(;t<n;){var i=e[t++];if(0===i)break;if(0==(128&i))r.push(i);else if(192==(224&i)){var a=63&e[t++];r.push((31&i)<<6|a)}else if(224==(240&i)){a=63&e[t++];var s=63&e[t++];r.push((31&i)<<12|a<<6|s)}else if(240==(248&i)){a=63&e[t++],s=63&e[t++];var c=63&e[t++],u=(7&i)<<18|a<<12|s<<6|c;u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u)}r.length>1024&&(o.push(String.fromCharCode.apply(null,r)),r.length=0)}return o.push(String.fromCharCode.apply(null,r)),o.join("")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shouldAutoStart=function(){return!(!document||!document.currentScript||"false"===document.currentScript.getAttribute("autostart"))}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n<i;c=r[++n])g(c)||!w(c)?a+=" "+c:a+=" "+s(c);return a},t.deprecate=function(n,r){if(void 0!==e&&!0===e.noDeprecation)return n;if(void 0===e)return function(){return t.deprecate(n,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),o=!0}return n.apply(this,arguments)}};var i,a={};function s(e,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,_=["{","}"];(p(n)&&(I=!0,_=["[","]"]),C(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a<s;++a)P(t,String(a))?i.push(h(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(h(e,t,n,r,o,!0))})),i}(e,n,r,s,a):a.map((function(t){return h(e,n,r,s,t,I)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,_)):_[0]+w+_[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function C(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),x&&Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=x,t.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then((function(t){e.nextTick(a,null,t)}),(function(t){e.nextTick(O,t,a)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.defineProperties(n,r(t)),n}}).call(this,n(14))},function(e,t,n){"use strict";(function(t,r){var o=n(22);e.exports=m;var i,a=n(62);m.ReadableState=b;n(38).EventEmitter;var s=function(e,t){return e.listeners(t).length},c=n(39),u=n(15).Buffer,l=t.Uint8Array||function(){};var f=n(20);f.inherits=n(16);var h=n(63),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var d,g=n(64),y=n(40);f.inherits(m,c);var v=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(10));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(41).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function m(e){if(i=i||n(10),!(this instanceof m))return new m(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,C(e)}(e,a)):(o||(i=function(e,t){var n;r=t,u.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):_(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function E(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&C(e)),_(e,t)}Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),m.prototype.destroy=y.destroy,m.prototype._undestroy=y.undestroy,m.prototype._destroy=function(e,t){this.push(null),t(e)},m.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=u.from(e,t),t=""),n=!0),w(this,e,t,!1,n)},m.prototype.unshift=function(e){return w(this,e,null,!0,!1)},m.prototype.isPaused=function(){return!1===this._readableState.flowing},m.prototype.setEncoding=function(e){return d||(d=n(41).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};function S(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function C(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),x(e)}function _(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(p("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function T(e){p("readable nexttick read 0"),e.read(0)}function P(e,t){t.reading||(p("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(p("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function R(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function D(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}m.prototype.read=function(e){p("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?R(this):C(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&R(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&p("length less than watermark",o=!0),t.ended||t.reading?p("reading or ended",o=!1):o&&(p("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=S(n,t))),null===(r=e>0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&R(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,x(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==D(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=D(t.pipes,e);return-1===a||(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},m.prototype.on=function(e,t){var n=c.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&C(this):o.nextTick(T,this))}return n},m.prototype.addListener=m.prototype.on,m.prototype.resume=function(){var e=this._readableState;return e.flowing||(p("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(P,e,t))}(this,e)),this},m.prototype.pause=function(){return p("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(p("pause"),this._readableState.flowing=!1,this.emit("pause")),this},m.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",(function(){if(p("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(p("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<v.length;i++)e.on(v[i],this.emit.bind(this,v[i]));return this._read=function(t){p("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(m.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),m._fromList=O}).call(this,n(9),n(14))},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function f(e,t,n,r){var o,i,a,s;if(u(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=l(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):y(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function y(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n<u;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return f(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return f(this,e,t,!0)},s.prototype.once=function(e,t){return u(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(38).EventEmitter},function(e,t,n){"use strict";var r=n(22);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(22);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(20);u.inherits=n(16);var l={deprecate:n(69)},f=n(39),h=n(15).Buffer,p=o.Uint8Array||function(){};var d,g=n(40);function y(){}function v(e,t){s=s||n(10),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(10),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function C(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(C,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else m(e,t,!1,s,r,o,i);return c}(this,o,s,e,t,n)),a},b.prototype.cork=function(){this._writableState.corked++},b.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||E(this,e))},b.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(14),n(67).setImmediate,n(9))},function(e,t,n){"use strict";e.exports=a;var r=n(10),o=n(20);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,n){c(e,t,n)})):c(this,null,null)}function c(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(16),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,(function(e){t(e),n.emit("close")}))}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return i}));var r=n(7),o=n(1),i=function(){function t(){}return t.prototype.writeHandshakeRequest=function(e){return r.a.write(JSON.stringify(e))},t.prototype.parseHandshakeResponse=function(t){var n,i;if(Object(o.i)(t)||void 0!==e&&t instanceof e){var a=new Uint8Array(t);if(-1===(c=a.indexOf(r.a.RecordSeparatorCode)))throw new Error("Message is incomplete.");var s=c+1;n=String.fromCharCode.apply(null,a.slice(0,s)),i=a.byteLength>s?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(11).Buffer)},,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},i=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e};Object.defineProperty(t,"__esModule",{value:!0});var s=n(3);n(23);var c=n(2),u=n(83),l=n(32),f=n(35),h=n(75),p=n(77),d=n(17),g=n(78),y=n(19),v=n(79),b=n(80),m=n(4),w=n(5),E=!1,S=!1;function C(e){return r(this,void 0,void 0,(function(){var t,n,i,a,s,c,u,l,f=this;return o(this,(function(h){switch(h.label){case 0:if(S)throw new Error("Blazor has already started.");return S=!0,w.initializeProfiling(null),t=v.resolveOptions(e),n=new p.ConsoleLogger(t.logLevel),window.Blazor.defaultReconnectionHandler=new b.DefaultReconnectionHandler(n),t.reconnectionHandler=t.reconnectionHandler||window.Blazor.defaultReconnectionHandler,n.log(d.LogLevel.Information,"Starting up blazor server-side application."),i=g.discoverComponents(document),a=new g.CircuitDescriptor(i),[4,I(t,n,a)];case 1:return s=h.sent(),[4,a.startCircuit(s)];case 2:return h.sent()?(c=function(e){return r(f,void 0,void 0,(function(){var r,i;return o(this,(function(o){switch(o.label){case 0:return E?[2,!1]:(i=e)?[3,2]:[4,I(t,n,a)];case 1:i=o.sent(),o.label=2;case 2:return r=i,[4,a.reconnect(r)];case 3:return o.sent()?(t.reconnectionHandler.onConnectionUp(),[2,!0]):(n.log(d.LogLevel.Information,"Reconnection attempt to the circuit was rejected by the server. This may indicate that the associated state is no longer available on the server."),[2,!1])}}))}))},u=!1,l=function(){if(!u){var e=new FormData,t=a.circuitId;e.append("circuitId",t),u=navigator.sendBeacon("_blazor/disconnect",e)}},window.addEventListener("beforeunload",l,{capture:!1,once:!0}),window.addEventListener("unload",l,{capture:!1,once:!0}),window.Blazor.reconnect=c,n.log(d.LogLevel.Information,"Blazor server-side application started."),[2]):(n.log(d.LogLevel.Error,"Failed to start the circuit."),[2])}}))}))}function I(e,t,n){return r(this,void 0,void 0,(function(){var r,i,f,p,g;return o(this,(function(o){switch(o.label){case 0:(r=new u.MessagePackHubProtocol).name="blazorpack",i=(new c.HubConnectionBuilder).withUrl("_blazor").withHubProtocol(r),e.configureSignalR(i),f=i.build(),y.setEventDispatcher((function(e,t){f.send("DispatchBrowserEvent",JSON.stringify(e),JSON.stringify(t))})),window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return f.send("OnLocationChanged",e,t)})),f.on("JS.AttachComponent",(function(e,t){return m.attachRootComponentToLogicalElement(0,n.resolveElement(t),e)})),f.on("JS.BeginInvokeJS",s.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet),f.on("JS.EndInvokeDotNet",(function(e){var t;return(t=s.DotNet.jsCallDispatcher).endInvokeDotNetFromJS.apply(t,a(JSON.parse(e)))})),p=h.RenderQueue.getOrCreate(t),f.on("JS.RenderBatch",(function(e,n){t.log(d.LogLevel.Debug,"Received render batch with id "+e+" and "+n.byteLength+" bytes."),p.processBatch(e,n,f)})),f.onclose((function(t){return!E&&e.reconnectionHandler.onConnectionDown(e.reconnectionOptions,t)})),f.on("JS.Error",(function(e){E=!0,_(f,e,t),l.showErrorNotification()})),window.Blazor._internal.forceCloseConnection=function(){return f.stop()},o.label=1;case 1:return o.trys.push([1,3,,4]),[4,f.start()];case 2:return o.sent(),[3,4];case 3:return g=o.sent(),_(f,g,t),[3,4];case 4:return s.DotNet.attachDispatcher({beginInvokeDotNetFromJS:function(e,t,n,r,o){f.send("BeginInvokeDotNetFromJS",e?e.toString():null,t,n,r||0,o)},endInvokeJSFromDotNet:function(e,t,n){f.send("EndInvokeJSFromDotNet",e,t,n)}}),[2,f]}}))}))}function _(e,t,n){n.log(d.LogLevel.Error,t),e&&e.stop()}window.Blazor.start=C,f.shouldAutoStart()&&C()},function(e,t,n){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=u(e),a=r[0],s=r[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),l=0,f=s>0?a-4:a;for(n=0;n<f;n+=4)t=o[e.charCodeAt(n)]<<18|o[e.charCodeAt(n+1)]<<12|o[e.charCodeAt(n+2)]<<6|o[e.charCodeAt(n+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s<c;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<<s)-1,u=c>>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<<u)-1,f=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<<o|s,u+=o;u>0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * @@ -16,4 +16,4 @@ var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647 object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(c[l]=n[l]);if(r){s=r(n);for(var f=0;f<s.length;f++)i.call(n,s[f])&&(c[s[f]]=n[s[f]])}}return c}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){e.exports=n(10)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(65);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(68),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return u[c]=o,r(c),c++},h.clearImmediate=p}function p(e){delete u[e]}function d(e){if(l)setTimeout(d,0,e);else{var t=u[e];if(t){l=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{p(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(9),n(14))},function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(71).Transform,o=n(16),i=n(21);function a(e){(e=e||{}).objectMode=!0,e.highWaterMark=16,r.call(this,e),this._msgpack=e.msgpack}function s(e){if(!(this instanceof s))return(e=e||{}).msgpack=this,new s(e);a.call(this,e)}function c(e){if(!(this instanceof c))return(e=e||{}).msgpack=this,new c(e);a.call(this,e),this._chunks=i()}o(a,r),o(s,a),s.prototype._transform=function(e,t,n){var r=null;try{r=this._msgpack.encode(e).slice(0)}catch(e){return this.emit("error",e),n()}this.push(r),n()},o(c,a),c.prototype._transform=function(e,t,n){e&&this._chunks.append(e);try{var r=this._msgpack.decode(this._chunks);this.push(r)}catch(e){return void(e instanceof this._msgpack.IncompleteBufferError?n():this.emit("error",e))}this._chunks.length>0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(37)).Stream=t,t.Readable=t,t.Writable=n(42),t.Duplex=n(10),t.Transform=n(43),t.PassThrough=n(72)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(36).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t<n)}(h,o))return null;switch(h){case 192:return n(null,1);case 194:return n(!1,1);case 195:return n(!0,1);case 204:return n(p=e.readUInt8(r+1),2);case 205:return n(p=e.readUInt16BE(r+1),3);case 206:return n(p=e.readUInt32BE(r+1),5);case 207:for(f=7;f>=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a<r;a++){var u=i(e,t);if(!u)return null;s.push(u.value),t+=u.bytesConsumed,c+=u.bytesConsumed}return n(s,o+c)}function s(e,t,r,o){var a,s={},c=0;for(t+=o,a=0;a<r;a++){var u=i(e,t);if(!u)return null;var l=i(e,t+=u.bytesConsumed);if(!l)return null;s[u.value]=l.value,t+=l.bytesConsumed,c+=u.bytesConsumed+l.bytesConsumed}return n(s,o+c)}function c(e,t,n){var r=e.readInt8(t+1);return u(e,t,r,n,2)}function u(t,r,o,i,a){var s,c;if(r+=a,o<0)switch(o){case-1:return function(e,t,r){var o,i;switch(i=0,t){case 4:o=e.readUInt32BE(0);break;case 8:var a=e.readUInt32BE(0),s=e.readUInt32BE(4);i=a/4,o=(3&a)*Math.pow(2,32)+s;break;case 12:throw new Error("timestamp 96 is not yet implemented")}var c=1e3*o+Math.round(i/1e6);return n(new Date(c),t+r)}(c=t.slice(r,r+i),i,a)}for(s=0;s<e.length;s++){if(o===e[s].type)return c=t.slice(r,r+i),n(e[s].decode(c),a+i)}throw new Error("unable to find ext type "+o)}},e.exports.IncompleteBufferError=o},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(21);function i(e,t){var n;return(n=r.allocUnsafe(5))[0]=202,n.writeFloatBE(e,1),(t||Math.abs(e-n.readFloatBE(1))>.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n<e.length;n++)if(e[n].check(t)){i=e[n].encode(t);break}if(!i)return null;1===(a=i.length-1)?s.push(212):2===a?s.push(213):4===a?s.push(214):8===a?s.push(215):16===a?s.push(216):a<256?(s.push(199),s.push(a)):a<65536?(s.push(200),s.push(a>>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),a=n(76),s=n(17),c=function(){function e(e,t){this.nextBatchId=2,this.browserRendererId=e,this.logger=t}return e.getOrCreate=function(t){return e.instance||(e.instance=new e(0,t)),this.instance},e.prototype.processBatch=function(e,t,n){return r(this,void 0,void 0,(function(){var r;return o(this,(function(o){switch(o.label){case 0:return e<this.nextBatchId?[4,this.completeBatch(n,e)]:[3,2];case 1:return o.sent(),this.logger.log(s.LogLevel.Debug,"Batch "+e+" already processed. Waiting for batch "+this.nextBatchId+"."),[2];case 2:return e>this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(34),o=n(33),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}();t.NullLogger=o;var i=function(){function e(e){this.minimumLogLevel=e}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(8),a=n(13),s=function(){function e(e){this.circuitId=void 0,this.components=e}return e.prototype.reconnect=function(e){if(!this.circuitId)throw new Error("Circuit host not initialized.");return e.invoke("ConnectCircuit",this.circuitId)},e.prototype.initialize=function(e){if(this.circuitId)throw new Error("Circuit host '"+this.circuitId+"' already initialized.");this.circuitId=e},e.prototype.startCircuit=function(e){return r(this,void 0,void 0,(function(){var t;return o(this,(function(n){switch(n.label){case 0:return[4,e.invoke("StartCircuit",i.internalFunctions.getBaseURI(),i.internalFunctions.getLocationHref(),JSON.stringify(this.components.map((function(e){return e.toRecord()}))))];case 1:return(t=n.sent())?(this.initialize(t),[2,!0]):[2,!1]}}))}))},e.prototype.resolveElement=function(e){var t=Number.parseInt(e);if(Number.isNaN(t))throw new Error("Invalid sequence number '"+e+"'.");return a.toLogicalRootCommentElement(this.components[t].start,this.components[t].end)},e}();t.CircuitDescriptor=s;var c=function(){function e(e,t,n,r,o){this.type=e,this.start=t,this.end=n,this.sequence=r,this.descriptor=o}return e.prototype.toRecord=function(){return{type:this.type,sequence:this.sequence,descriptor:this.descriptor}},e}();t.ComponentDescriptor=c,t.discoverComponents=function(e){for(var t=function e(t){if(!t.hasChildNodes())return[];var n=[],r=new h(t.childNodes);for(;r.next()&&r.currentElement;){var o=l(r);if(o)n.push(o);else for(var i=e(r.currentElement),a=0;a<i.length;a++){var s=i[a];n.push(s)}}return n}(e),n=[],r=0;r<t.length;r++){var o=t[r],i=new c(o.type,o.start,o.end,o.sequence,o.descriptor);n.push(i)}return n.sort((function(e,t){return e.sequence-t.sequence}))};var u=/\W*Blazor:[^{]*(.*)$/;function l(e){var t=e.currentElement;if(t&&t.nodeType===Node.COMMENT_NODE&&t.textContent){var n=new RegExp(u).exec(t.textContent),r=n&&n[1];if(!r)return;try{return function(e,t,n){var r=JSON.parse(e),o=r.type,i=r.sequence,a=r.descriptor,s=r.prerenderId;if("server"!==o)throw new Error("Invalid component type '"+o+"'.");if(!a)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+e+"'");if(s){var c=function(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(u).exec(n.textContent),o=r&&r[1];if(o)return f(o,e),n}}return}(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:o,sequence:i,descriptor:a,start:t,prerenderId:s,end:c}}return{type:o,sequence:i,descriptor:a,start:t}}(r,t,e)}catch(e){throw new Error("Found malformed component comment at "+t.textContent)}}}function f(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var h=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex<this.length?(this.currentElement=this.childNodes[this.currentIndex],!0):(this.currentElement=void 0,!1)},e}()},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=n(17);t.resolveOptions=function(e){var t=r(r({},i),e);return e&&e.reconnectionOptions&&(t.reconnectionOptions=r(r({},i.reconnectionOptions),e.reconnectionOptions)),t};var i={configureSignalR:function(e){},logLevel:o.LogLevel.Warning,reconnectionOptions:{maxRetries:5,retryIntervalMilliseconds:3e3,dialogId:"components-reconnect-modal"}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(81),a=n(82),s=n(17),c=function(){function e(e,t,n){this._currentReconnectionProcess=null,this._logger=e,this._reconnectionDisplay=t,this._reconnectCallback=n||function(){return window.Blazor.reconnect()}}return e.prototype.onConnectionDown=function(e,t){if(!this._reconnectionDisplay){var n=document.getElementById(e.dialogId);this._reconnectionDisplay=n?new a.UserSpecifiedDisplay(n):new i.DefaultReconnectDisplay(e.dialogId,document,this._logger)}this._currentReconnectionProcess||(this._currentReconnectionProcess=new u(e,this._logger,this._reconnectCallback,this._reconnectionDisplay))},e.prototype.onConnectionUp=function(){this._currentReconnectionProcess&&(this._currentReconnectionProcess.dispose(),this._currentReconnectionProcess=null)},e}();t.DefaultReconnectionHandler=c;var u=function(){function e(e,t,n,r){this.logger=t,this.reconnectCallback=n,this.isDisposed=!1,this.reconnectDisplay=r,this.reconnectDisplay.show(),this.attemptPeriodicReconnection(e)}return e.prototype.dispose=function(){this.isDisposed=!0,this.reconnectDisplay.hide()},e.prototype.attemptPeriodicReconnection=function(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:t=0,r.label=1;case 1:return t<e.maxRetries?[4,this.delay(e.retryIntervalMilliseconds)]:[3,7];case 2:if(r.sent(),this.isDisposed)return[3,7];r.label=3;case 3:return r.trys.push([3,5,,6]),[4,this.reconnectCallback()];case 4:return r.sent()||this.reconnectDisplay.rejected(),[2];case 5:return n=r.sent(),this.logger.log(s.LogLevel.Error,n),[3,6];case 6:return t++,[3,1];case 7:return this.reconnectDisplay.failed(),[2]}}))}))},e.prototype.delay=function(e){return new Promise((function(t){return setTimeout(t,e)}))},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(17),a=function(){function e(e,t,n){var a=this;this.document=t,this.logger=n,this.addedToDom=!1,this.modal=this.document.createElement("div"),this.modal.id=e;this.modal.style.cssText=["position: fixed","top: 0","right: 0","bottom: 0","left: 0","z-index: 1050","display: none","overflow: hidden","background-color: #fff","opacity: 0.8","text-align: center","font-weight: bold"].join(";"),this.modal.innerHTML='<h5 style="margin-top: 20px"></h5><button style="margin:5px auto 5px">Retry</button><p>Alternatively, <a href>reload</a></p>',this.message=this.modal.querySelector("h5"),this.button=this.modal.querySelector("button"),this.reloadParagraph=this.modal.querySelector("p"),this.button.addEventListener("click",(function(){return r(a,void 0,void 0,(function(){var e;return o(this,(function(t){switch(t.label){case 0:this.show(),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,window.Blazor.reconnect()];case 2:return t.sent()||this.rejected(),[3,4];case 3:return e=t.sent(),this.logger.log(i.LogLevel.Error,e),this.failed(),[3,4];case 4:return[2]}}))}))})),this.reloadParagraph.querySelector("a").addEventListener("click",(function(){return location.reload()}))}return e.prototype.show=function(){this.addedToDom||(this.addedToDom=!0,this.document.body.appendChild(this.modal)),this.modal.style.display="block",this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.textContent="Attempting to reconnect to the server..."},e.prototype.hide=function(){this.modal.style.display="none"},e.prototype.failed=function(){this.button.style.display="block",this.reloadParagraph.style.display="none",this.message.innerHTML="Reconnection failed. Try <a href>reloading</a> the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. <a href>Reload</a> the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o<e.byteLength;){var i=0,a=0,s=void 0;do{a|=(127&(s=n[o+i]))<<r[i],i++}while(i<Math.min(5,e.byteLength-o)&&0!=(128&s));if(0!=(128&s)&&i<5)throw new Error("Cannot read message size.");if(5===i&&s>7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c=new Uint8Array([145,i.MessageType.Ping]),u=function(){function e(e){this.name="messagepack",this.version=1,this.transferFormat=i.TransferFormat.Binary,this.errorResult=1,this.voidResult=2,this.nonVoidResult=3,e&&(this.messagePackOptions=s({},e,{compatibilityMode:!1}))}return e.prototype.parseMessages=function(e,t){if(!(e instanceof r.Buffer||(n=e,n&&"undefined"!=typeof ArrayBuffer&&(n instanceof ArrayBuffer||n.constructor&&"ArrayBuffer"===n.constructor.name))))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer or Buffer.");var n;null===t&&(t=i.NullLogger.instance);for(var o=[],s=0,c=a.parse(e);s<c.length;s++){var u=c[s],l=this.parseMessage(u,t);l&&o.push(l)}return o},e.prototype.writeMessage=function(e){switch(e.type){case i.MessageType.Invocation:return this.writeInvocation(e);case i.MessageType.StreamInvocation:return this.writeStreamInvocation(e);case i.MessageType.StreamItem:return this.writeStreamItem(e);case i.MessageType.Completion:return this.writeCompletion(e);case i.MessageType.Ping:return a.write(c);case i.MessageType.CancelInvocation:return this.writeCancelInvocation(e);default:throw new Error("Invalid message type.")}},e.prototype.parseMessage=function(e,t){if(0===e.length)throw new Error("Invalid payload.");var n=o(this.messagePackOptions).decode(r.Buffer.from(e));if(0===n.length||!(n instanceof Array))throw new Error("Invalid payload.");var a=n[0];switch(a){case i.MessageType.Invocation:return this.createInvocationMessage(this.readHeaders(n),n);case i.MessageType.StreamItem:return this.createStreamItemMessage(this.readHeaders(n),n);case i.MessageType.Completion:return this.createCompletionMessage(this.readHeaders(n),n);case i.MessageType.Ping:return this.createPingMessage(n);case i.MessageType.Close:return this.createCloseMessage(n);default:return t.log(i.LogLevel.Information,"Unknown message type '"+a+"' ignored."),null}},e.prototype.createCloseMessage=function(e){if(e.length<2)throw new Error("Invalid payload for Close message.");return{allowReconnect:e.length>=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="5.0.0-dev"}]); \ No newline at end of file +*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,c=a(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(c[l]=n[l]);if(r){s=r(n);for(var f=0;f<s.length;f++)i.call(n,s[f])&&(c[s[f]]=n[s[f]])}}return c}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){e.exports=n(10)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(65);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r=n(11),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(68),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,c=1,u={},l=!1,f=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return u[c]=o,r(c),c++},h.clearImmediate=p}function p(e){delete u[e]}function d(e){if(l)setTimeout(d,0,e);else{var t=u[e];if(t){l=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{p(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(9),n(14))},function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(this,n(9))},function(e,t,n){"use strict";var r=n(71).Transform,o=n(16),i=n(21);function a(e){(e=e||{}).objectMode=!0,e.highWaterMark=16,r.call(this,e),this._msgpack=e.msgpack}function s(e){if(!(this instanceof s))return(e=e||{}).msgpack=this,new s(e);a.call(this,e)}function c(e){if(!(this instanceof c))return(e=e||{}).msgpack=this,new c(e);a.call(this,e),this._chunks=i()}o(a,r),o(s,a),s.prototype._transform=function(e,t,n){var r=null;try{r=this._msgpack.encode(e).slice(0)}catch(e){return this.emit("error",e),n()}this.push(r),n()},o(c,a),c.prototype._transform=function(e,t,n){e&&this._chunks.append(e);try{var r=this._msgpack.decode(this._chunks);this.push(r)}catch(e){return void(e instanceof this._msgpack.IncompleteBufferError?n():this.emit("error",e))}this._chunks.length>0?this._transform(null,t,n):n()},e.exports.decoder=c,e.exports.encoder=s},function(e,t,n){(t=e.exports=n(37)).Stream=t,t.Readable=t,t.Writable=n(42),t.Duplex=n(10),t.Transform=n(43),t.PassThrough=n(72)},function(e,t,n){"use strict";e.exports=i;var r=n(43),o=n(20);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(16),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){var r=n(21);function o(e){Error.call(this),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||"unable to decode"}n(36).inherits(o,Error),e.exports=function(e){return function(e){e instanceof r||(e=r().append(e));var t=i(e);if(t)return e.consume(t.bytesConsumed),t.value;throw new o};function t(e,t,n){return t>=n+e}function n(e,t){return{value:e,bytesConsumed:t}}function i(e,r){r=void 0===r?0:r;var o=e.length-r;if(o<=0)return null;var i,l,f,h=e.readUInt8(r),p=0;if(!function(e,t){var n=function(e){switch(e){case 196:return 2;case 197:return 3;case 198:return 5;case 199:return 3;case 200:return 4;case 201:return 6;case 202:return 5;case 203:return 9;case 204:return 2;case 205:return 3;case 206:return 5;case 207:return 9;case 208:return 2;case 209:return 3;case 210:return 5;case 211:return 9;case 212:return 3;case 213:return 4;case 214:return 6;case 215:return 10;case 216:return 18;case 217:return 2;case 218:return 3;case 219:return 5;case 222:return 3;default:return-1}}(e);return!(-1!==n&&t<n)}(h,o))return null;switch(h){case 192:return n(null,1);case 194:return n(!1,1);case 195:return n(!0,1);case 204:return n(p=e.readUInt8(r+1),2);case 205:return n(p=e.readUInt16BE(r+1),3);case 206:return n(p=e.readUInt32BE(r+1),5);case 207:for(f=7;f>=0;f--)p+=e.readUInt8(r+f+1)*Math.pow(2,8*(7-f));return n(p,9);case 208:return n(p=e.readInt8(r+1),2);case 209:return n(p=e.readInt16BE(r+1),3);case 210:return n(p=e.readInt32BE(r+1),5);case 211:return n(p=function(e,t){var n=128==(128&e[t]);if(n)for(var r=1,o=t+7;o>=t;o--){var i=(255^e[o])+r;e[o]=255&i,r=i>>8}var a=e.readUInt32BE(t+0),s=e.readUInt32BE(t+4);return(4294967296*a+s)*(n?-1:1)}(e.slice(r+1,r+9),0),9);case 202:return n(p=e.readFloatBE(r+1),5);case 203:return n(p=e.readDoubleBE(r+1),9);case 217:return t(i=e.readUInt8(r+1),o,2)?n(p=e.toString("utf8",r+2,r+2+i),2+i):null;case 218:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.toString("utf8",r+3,r+3+i),3+i):null;case 219:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.toString("utf8",r+5,r+5+i),5+i):null;case 196:return t(i=e.readUInt8(r+1),o,2)?n(p=e.slice(r+2,r+2+i),2+i):null;case 197:return t(i=e.readUInt16BE(r+1),o,3)?n(p=e.slice(r+3,r+3+i),3+i):null;case 198:return t(i=e.readUInt32BE(r+1),o,5)?n(p=e.slice(r+5,r+5+i),5+i):null;case 220:return o<3?null:(i=e.readUInt16BE(r+1),a(e,r,i,3));case 221:return o<5?null:(i=e.readUInt32BE(r+1),a(e,r,i,5));case 222:return i=e.readUInt16BE(r+1),s(e,r,i,3);case 223:throw new Error("map too big to decode in JS");case 212:return c(e,r,1);case 213:return c(e,r,2);case 214:return c(e,r,4);case 215:return c(e,r,8);case 216:return c(e,r,16);case 199:return i=e.readUInt8(r+1),l=e.readUInt8(r+2),t(i,o,3)?u(e,r,l,i,3):null;case 200:return i=e.readUInt16BE(r+1),l=e.readUInt8(r+3),t(i,o,4)?u(e,r,l,i,4):null;case 201:return i=e.readUInt32BE(r+1),l=e.readUInt8(r+5),t(i,o,6)?u(e,r,l,i,6):null}if(144==(240&h))return a(e,r,i=15&h,1);if(128==(240&h))return s(e,r,i=15&h,1);if(160==(224&h))return t(i=31&h,o,1)?n(p=e.toString("utf8",r+1,r+i+1),i+1):null;if(h>=224)return n(p=h-256,1);if(h<128)return n(h,1);throw new Error("not implemented yet")}function a(e,t,r,o){var a,s=[],c=0;for(t+=o,a=0;a<r;a++){var u=i(e,t);if(!u)return null;s.push(u.value),t+=u.bytesConsumed,c+=u.bytesConsumed}return n(s,o+c)}function s(e,t,r,o){var a,s={},c=0;for(t+=o,a=0;a<r;a++){var u=i(e,t);if(!u)return null;var l=i(e,t+=u.bytesConsumed);if(!l)return null;s[u.value]=l.value,t+=l.bytesConsumed,c+=u.bytesConsumed+l.bytesConsumed}return n(s,o+c)}function c(e,t,n){var r=e.readInt8(t+1);return u(e,t,r,n,2)}function u(t,r,o,i,a){var s,c;if(r+=a,o<0)switch(o){case-1:return function(e,t,r){var o,i;switch(i=0,t){case 4:o=e.readUInt32BE(0);break;case 8:var a=e.readUInt32BE(0),s=e.readUInt32BE(4);i=a/4,o=(3&a)*Math.pow(2,32)+s;break;case 12:throw new Error("timestamp 96 is not yet implemented")}var c=1e3*o+Math.round(i/1e6);return n(new Date(c),t+r)}(c=t.slice(r,r+i),i,a)}for(s=0;s<e.length;s++){if(o===e[s].type)return c=t.slice(r,r+i),n(e[s].decode(c),a+i)}throw new Error("unable to find ext type "+o)}},e.exports.IncompleteBufferError=o},function(e,t,n){"use strict";var r=n(15).Buffer,o=n(21);function i(e,t){var n;return(n=r.allocUnsafe(5))[0]=202,n.writeFloatBE(e,1),(t||Math.abs(e-n.readFloatBE(1))>.1)&&((n=r.allocUnsafe(9))[0]=203,n.writeDoubleBE(e,1)),n}e.exports=function(e,t,n,a){function s(c,u){var l,f,h;if(void 0===c)throw new Error("undefined is not encodable in msgpack!");if(null===c)(l=r.allocUnsafe(1))[0]=192;else if(!0===c)(l=r.allocUnsafe(1))[0]=195;else if(!1===c)(l=r.allocUnsafe(1))[0]=194;else if("string"==typeof c)(f=r.byteLength(c))<32?((l=r.allocUnsafe(1+f))[0]=160|f,f>0&&l.write(c,1)):f<=255&&!n?((l=r.allocUnsafe(2+f))[0]=217,l[1]=f,l.write(c,2)):f<=65535?((l=r.allocUnsafe(3+f))[0]=218,l.writeUInt16BE(f,1),l.write(c,3)):((l=r.allocUnsafe(5+f))[0]=219,l.writeUInt32BE(f,1),l.write(c,5));else if(c&&(c.readUInt32LE||c instanceof Uint8Array))c instanceof Uint8Array&&(c=r.from(c)),c.length<=255?((l=r.allocUnsafe(2))[0]=196,l[1]=c.length):c.length<=65535?((l=r.allocUnsafe(3))[0]=197,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=198,l.writeUInt32BE(c.length,1)),l=o([l,c]);else if(Array.isArray(c))c.length<16?(l=r.allocUnsafe(1))[0]=144|c.length:c.length<65536?((l=r.allocUnsafe(3))[0]=220,l.writeUInt16BE(c.length,1)):((l=r.allocUnsafe(5))[0]=221,l.writeUInt32BE(c.length,1)),l=c.reduce((function(e,t){return e.append(s(t,!0)),e}),o().append(l));else{if(!a&&"function"==typeof c.getDate)return function(e){var t,n=1*e,i=Math.floor(n/1e3),a=1e6*(n-1e3*i);if(a||i>4294967295){(t=new r(10))[0]=215,t[1]=-1;var s=4*a,c=i/Math.pow(2,32),u=s+c&4294967295,l=4294967295&i;t.writeInt32BE(u,2),t.writeInt32BE(l,6)}else(t=new r(6))[0]=214,t[1]=-1,t.writeUInt32BE(Math.floor(n/1e3),2);return o().append(t)}(c);if("object"==typeof c)l=function(t){var n,i,a,s=[];for(n=0;n<e.length;n++)if(e[n].check(t)){i=e[n].encode(t);break}if(!i)return null;1===(a=i.length-1)?s.push(212):2===a?s.push(213):4===a?s.push(214):8===a?s.push(215):16===a?s.push(216):a<256?(s.push(199),s.push(a)):a<65536?(s.push(200),s.push(a>>8),s.push(255&a)):(s.push(201),s.push(a>>24),s.push(a>>16&255),s.push(a>>8&255),s.push(255&a));return o().append(r.from(s)).append(i)}(c)||function(e){var t,n,i=[],a=0;for(t in e)e.hasOwnProperty(t)&&void 0!==e[t]&&"function"!=typeof e[t]&&(++a,i.push(s(t,!0)),i.push(s(e[t],!0)));a<16?(n=r.allocUnsafe(1))[0]=128|a:((n=r.allocUnsafe(3))[0]=222,n.writeUInt16BE(a,1));return i.unshift(n),i.reduce((function(e,t){return e.append(t)}),o())}(c);else if("number"==typeof c){if((h=c)!==Math.floor(h))return i(c,t);if(c>=0)if(c<128)(l=r.allocUnsafe(1))[0]=c;else if(c<256)(l=r.allocUnsafe(2))[0]=204,l[1]=c;else if(c<65536)(l=r.allocUnsafe(3))[0]=205,l.writeUInt16BE(c,1);else if(c<=4294967295)(l=r.allocUnsafe(5))[0]=206,l.writeUInt32BE(c,1);else{if(!(c<=9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=207,function(e,t){for(var n=7;n>=0;n--)e[n+1]=255&t,t/=256}(l,c)}else if(c>=-32)(l=r.allocUnsafe(1))[0]=256+c;else if(c>=-128)(l=r.allocUnsafe(2))[0]=208,l.writeInt8(c,1);else if(c>=-32768)(l=r.allocUnsafe(3))[0]=209,l.writeInt16BE(c,1);else if(c>-214748365)(l=r.allocUnsafe(5))[0]=210,l.writeInt32BE(c,1);else{if(!(c>=-9007199254740991))return i(c,!0);(l=r.allocUnsafe(9))[0]=211,function(e,t,n){var r=n<0;r&&(n=Math.abs(n));var o=n%4294967296,i=n/4294967296;if(e.writeUInt32BE(Math.floor(i),t+0),e.writeUInt32BE(o,t+4),r)for(var a=1,s=t+7;s>=t;s--){var c=(255^e[s])+a;e[s]=255&c,a=c>>8}}(l,1,c)}}}if(!l)throw new Error("not implemented yet");return u?l:l.slice()}return s}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),a=n(76),s=n(17),c=function(){function e(e,t){this.nextBatchId=2,this.browserRendererId=e,this.logger=t}return e.getOrCreate=function(t){return e.instance||(e.instance=new e(0,t)),this.instance},e.prototype.processBatch=function(e,t,n){return r(this,void 0,void 0,(function(){var r;return o(this,(function(o){switch(o.label){case 0:return e<this.nextBatchId?[4,this.completeBatch(n,e)]:[3,2];case 1:return o.sent(),this.logger.log(s.LogLevel.Debug,"Batch "+e+" already processed. Waiting for batch "+this.nextBatchId+"."),[2];case 2:return e>this.nextBatchId?this.fatalError?(this.logger.log(s.LogLevel.Debug,"Received a new batch "+e+" but errored out on a previous batch "+(this.nextBatchId-1)),[4,n.send("OnRenderCompleted",this.nextBatchId-1,this.fatalError.toString())]):[3,4]:[3,5];case 3:return o.sent(),[2];case 4:return this.logger.log(s.LogLevel.Debug,"Waiting for batch "+this.nextBatchId+". Batch "+e+" not processed."),[2];case 5:return o.trys.push([5,7,,8]),this.nextBatchId++,this.logger.log(s.LogLevel.Debug,"Applying batch "+e+"."),i.renderBatch(this.browserRendererId,new a.OutOfProcessRenderBatch(t)),[4,this.completeBatch(n,e)];case 6:return o.sent(),[3,8];case 7:throw r=o.sent(),this.fatalError=r.toString(),this.logger.log(s.LogLevel.Error,"There was an error applying batch "+e+"."),n.send("OnRenderCompleted",e,r.toString()),r;case 8:return[2]}}))}))},e.prototype.getLastBatchid=function(){return this.nextBatchId-1},e.prototype.completeBatch=function(e,t){return r(this,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,e.send("OnRenderCompleted",t,null)];case 1:return n.sent(),[3,3];case 2:return n.sent(),this.logger.log(s.LogLevel.Warning,"Failed to deliver completion notification for render '"+t+"'."),[3,3];case 3:return[2]}}))}))},e}();t.RenderQueue=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(34),o=n(33),i=function(){function e(e){this.batchData=e;var t=new u(e);this.arrayRangeReader=new l(e),this.arrayBuilderSegmentReader=new f(e),this.diffReader=new a(e),this.editReader=new s(e,t),this.frameReader=new c(e,t)}return e.prototype.updatedComponents=function(){return o.readInt32LE(this.batchData,this.batchData.length-20)},e.prototype.referenceFrames=function(){return o.readInt32LE(this.batchData,this.batchData.length-16)},e.prototype.disposedComponentIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-12)},e.prototype.disposedEventHandlerIds=function(){return o.readInt32LE(this.batchData,this.batchData.length-8)},e.prototype.updatedComponentsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.referenceFramesEntry=function(e,t){return e+20*t},e.prototype.disposedComponentIdsEntry=function(e,t){var n=e+4*t;return o.readInt32LE(this.batchData,n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=e+8*t;return o.readUint64LE(this.batchData,n)},e}();t.OutOfProcessRenderBatch=i;var a=function(){function e(e){this.batchDataUint8=e}return e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.edits=function(e){return e+4},e.prototype.editsEntry=function(e,t){return e+16*t},e}(),s=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.editType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.siblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.newTreeIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.moveToSiblingIndex=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.removedAttributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+12);return this.stringReader.readString(t)},e}(),c=function(){function e(e,t){this.batchDataUint8=e,this.stringReader=t}return e.prototype.frameType=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.subtreeLength=function(e){return o.readInt32LE(this.batchDataUint8,e+4)},e.prototype.elementReferenceCaptureId=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.componentId=function(e){return o.readInt32LE(this.batchDataUint8,e+8)},e.prototype.elementName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.textContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.markupContent=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeName=function(e){var t=o.readInt32LE(this.batchDataUint8,e+4);return this.stringReader.readString(t)},e.prototype.attributeValue=function(e){var t=o.readInt32LE(this.batchDataUint8,e+8);return this.stringReader.readString(t)},e.prototype.attributeEventHandlerId=function(e){return o.readUint64LE(this.batchDataUint8,e+12)},e}(),u=function(){function e(e){this.batchDataUint8=e,this.stringTableStartIndex=o.readInt32LE(e,e.length-4)}return e.prototype.readString=function(e){if(-1===e)return null;var t=o.readInt32LE(this.batchDataUint8,this.stringTableStartIndex+4*e),n=o.readLEB128(this.batchDataUint8,t),i=t+o.numLEB128Bytes(n),a=new Uint8Array(this.batchDataUint8.buffer,this.batchDataUint8.byteOffset+i,n);return r.decodeUtf8(a)},e}(),l=function(){function e(e){this.batchDataUint8=e}return e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}(),f=function(){function e(e){this.batchDataUint8=e}return e.prototype.offset=function(e){return 0},e.prototype.count=function(e){return o.readInt32LE(this.batchDataUint8,e)},e.prototype.values=function(e){return e+4},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}();t.NullLogger=o;var i=function(){function e(e){this.minimumLogLevel=e}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.LogLevel.Critical:case r.LogLevel.Error:console.error("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Warning:console.warn("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;case r.LogLevel.Information:console.info("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t);break;default:console.log("["+(new Date).toISOString()+"] "+r.LogLevel[e]+": "+t)}},e}();t.ConsoleLogger=i},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(8),a=n(13),s=function(){function e(e){this.circuitId=void 0,this.components=e}return e.prototype.reconnect=function(e){if(!this.circuitId)throw new Error("Circuit host not initialized.");return e.invoke("ConnectCircuit",this.circuitId)},e.prototype.initialize=function(e){if(this.circuitId)throw new Error("Circuit host '"+this.circuitId+"' already initialized.");this.circuitId=e},e.prototype.startCircuit=function(e){return r(this,void 0,void 0,(function(){var t;return o(this,(function(n){switch(n.label){case 0:return[4,e.invoke("StartCircuit",i.internalFunctions.getBaseURI(),i.internalFunctions.getLocationHref(),JSON.stringify(this.components.map((function(e){return e.toRecord()}))))];case 1:return(t=n.sent())?(this.initialize(t),[2,!0]):[2,!1]}}))}))},e.prototype.resolveElement=function(e){var t=Number.parseInt(e);if(Number.isNaN(t))throw new Error("Invalid sequence number '"+e+"'.");return a.toLogicalRootCommentElement(this.components[t].start,this.components[t].end)},e}();t.CircuitDescriptor=s;var c=function(){function e(e,t,n,r,o){this.type=e,this.start=t,this.end=n,this.sequence=r,this.descriptor=o}return e.prototype.toRecord=function(){return{type:this.type,sequence:this.sequence,descriptor:this.descriptor}},e}();t.ComponentDescriptor=c,t.discoverComponents=function(e){for(var t=function e(t){if(!t.hasChildNodes())return[];var n=[],r=new h(t.childNodes);for(;r.next()&&r.currentElement;){var o=l(r);if(o)n.push(o);else for(var i=e(r.currentElement),a=0;a<i.length;a++){var s=i[a];n.push(s)}}return n}(e),n=[],r=0;r<t.length;r++){var o=t[r],i=new c(o.type,o.start,o.end,o.sequence,o.descriptor);n.push(i)}return n.sort((function(e,t){return e.sequence-t.sequence}))};var u=/\W*Blazor:[^{]*(.*)$/;function l(e){var t=e.currentElement;if(t&&t.nodeType===Node.COMMENT_NODE&&t.textContent){var n=new RegExp(u).exec(t.textContent),r=n&&n[1];if(!r)return;try{return function(e,t,n){var r=JSON.parse(e),o=r.type,i=r.sequence,a=r.descriptor,s=r.prerenderId;if("server"!==o)throw new Error("Invalid component type '"+o+"'.");if(!a)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+e+"'");if(s){var c=function(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(u).exec(n.textContent),o=r&&r[1];if(o)return f(o,e),n}}return}(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:o,sequence:i,descriptor:a,start:t,prerenderId:s,end:c}}return{type:o,sequence:i,descriptor:a,start:t}}(r,t,e)}catch(e){throw new Error("Found malformed component comment at "+t.textContent)}}}function f(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var h=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex<this.length?(this.currentElement=this.childNodes[this.currentIndex],!0):(this.currentElement=void 0,!1)},e}()},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0});var o=n(17);t.resolveOptions=function(e){var t=r(r({},i),e);return e&&e.reconnectionOptions&&(t.reconnectionOptions=r(r({},i.reconnectionOptions),e.reconnectionOptions)),t};var i={configureSignalR:function(e){},logLevel:o.LogLevel.Warning,reconnectionOptions:{maxRetries:5,retryIntervalMilliseconds:3e3,dialogId:"components-reconnect-modal"}}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(81),a=n(82),s=n(17),c=function(){function e(e,t,n){this._currentReconnectionProcess=null,this._logger=e,this._reconnectionDisplay=t,this._reconnectCallback=n||function(){return window.Blazor.reconnect()}}return e.prototype.onConnectionDown=function(e,t){if(!this._reconnectionDisplay){var n=document.getElementById(e.dialogId);this._reconnectionDisplay=n?new a.UserSpecifiedDisplay(n):new i.DefaultReconnectDisplay(e.dialogId,document,this._logger)}this._currentReconnectionProcess||(this._currentReconnectionProcess=new u(e,this._logger,this._reconnectCallback,this._reconnectionDisplay))},e.prototype.onConnectionUp=function(){this._currentReconnectionProcess&&(this._currentReconnectionProcess.dispose(),this._currentReconnectionProcess=null)},e}();t.DefaultReconnectionHandler=c;var u=function(){function e(e,t,n,r){this.logger=t,this.reconnectCallback=n,this.isDisposed=!1,this.reconnectDisplay=r,this.reconnectDisplay.show(),this.attemptPeriodicReconnection(e)}return e.prototype.dispose=function(){this.isDisposed=!0,this.reconnectDisplay.hide()},e.prototype.attemptPeriodicReconnection=function(e){return r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:t=0,r.label=1;case 1:return t<e.maxRetries?[4,this.delay(e.retryIntervalMilliseconds)]:[3,7];case 2:if(r.sent(),this.isDisposed)return[3,7];r.label=3;case 3:return r.trys.push([3,5,,6]),[4,this.reconnectCallback()];case 4:return r.sent()||this.reconnectDisplay.rejected(),[2];case 5:return n=r.sent(),this.logger.log(s.LogLevel.Error,n),[3,6];case 6:return t++,[3,1];case 7:return this.reconnectDisplay.failed(),[2]}}))}))},e.prototype.delay=function(e){return new Promise((function(t){return setTimeout(t,e)}))},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(17),a=function(){function e(e,t,n){var a=this;this.document=t,this.logger=n,this.addedToDom=!1,this.modal=this.document.createElement("div"),this.modal.id=e;this.modal.style.cssText=["position: fixed","top: 0","right: 0","bottom: 0","left: 0","z-index: 1050","display: none","overflow: hidden","background-color: #fff","opacity: 0.8","text-align: center","font-weight: bold"].join(";"),this.modal.innerHTML='<h5 style="margin-top: 20px"></h5><button style="margin:5px auto 5px">Retry</button><p>Alternatively, <a href>reload</a></p>',this.message=this.modal.querySelector("h5"),this.button=this.modal.querySelector("button"),this.reloadParagraph=this.modal.querySelector("p"),this.button.addEventListener("click",(function(){return r(a,void 0,void 0,(function(){var e;return o(this,(function(t){switch(t.label){case 0:this.show(),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,window.Blazor.reconnect()];case 2:return t.sent()||this.rejected(),[3,4];case 3:return e=t.sent(),this.logger.log(i.LogLevel.Error,e),this.failed(),[3,4];case 4:return[2]}}))}))})),this.reloadParagraph.querySelector("a").addEventListener("click",(function(){return location.reload()}))}return e.prototype.show=function(){this.addedToDom||(this.addedToDom=!0,this.document.body.appendChild(this.modal)),this.modal.style.display="block",this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.textContent="Attempting to reconnect to the server..."},e.prototype.hide=function(){this.modal.style.display="none"},e.prototype.failed=function(){this.button.style.display="block",this.reloadParagraph.style.display="none",this.message.innerHTML="Reconnection failed. Try <a href>reloading</a> the page if you're unable to reconnect.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e.prototype.rejected=function(){this.button.style.display="none",this.reloadParagraph.style.display="none",this.message.innerHTML="Could not reconnect to the server. <a href>Reload</a> the page to restore functionality.",this.message.querySelector("a").addEventListener("click",(function(){return location.reload()}))},e}();t.DefaultReconnectDisplay=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.dialog=e}return e.prototype.show=function(){this.removeClasses(),this.dialog.classList.add(e.ShowClassName)},e.prototype.hide=function(){this.removeClasses(),this.dialog.classList.add(e.HideClassName)},e.prototype.failed=function(){this.removeClasses(),this.dialog.classList.add(e.FailedClassName)},e.prototype.rejected=function(){this.removeClasses(),this.dialog.classList.add(e.RejectedClassName)},e.prototype.removeClasses=function(){this.dialog.classList.remove(e.ShowClassName,e.HideClassName,e.FailedClassName,e.RejectedClassName)},e.ShowClassName="components-reconnect-show",e.HideClassName="components-reconnect-hide",e.FailedClassName="components-reconnect-failed",e.RejectedClassName="components-reconnect-rejected",e}();t.UserSpecifiedDisplay=r},function(e,t,n){"use strict";n.r(t),n.d(t,"VERSION",(function(){return l})),n.d(t,"MessagePackHubProtocol",(function(){return u}));var r=n(11),o=n(12),i=n(2),a=function(){function e(){}return e.write=function(e){var t=e.byteLength||e.length,n=[];do{var r=127&t;(t>>=7)>0&&(r|=128),n.push(r)}while(t>0);t=e.byteLength||e.length;var o=new Uint8Array(n.length+t);return o.set(n,0),o.set(e,n.length),o.buffer},e.parse=function(e){for(var t=[],n=new Uint8Array(e),r=[0,7,14,21,28],o=0;o<e.byteLength;){var i=0,a=0,s=void 0;do{a|=(127&(s=n[o+i]))<<r[i],i++}while(i<Math.min(5,e.byteLength-o)&&0!=(128&s));if(0!=(128&s)&&i<5)throw new Error("Cannot read message size.");if(5===i&&s>7)throw new Error("Messages bigger than 2GB are not supported.");if(!(n.byteLength>=o+i+a))throw new Error("Incomplete message.");t.push(n.slice?n.slice(o+i,o+i+a):n.subarray(o+i,o+i+a)),o=o+i+a}return t},e}();var s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c=new Uint8Array([145,i.MessageType.Ping]),u=function(){function e(e){this.name="messagepack",this.version=1,this.transferFormat=i.TransferFormat.Binary,this.errorResult=1,this.voidResult=2,this.nonVoidResult=3,e&&(this.messagePackOptions=s({},e,{compatibilityMode:!1}))}return e.prototype.parseMessages=function(e,t){if(!(e instanceof r.Buffer||(n=e,n&&"undefined"!=typeof ArrayBuffer&&(n instanceof ArrayBuffer||n.constructor&&"ArrayBuffer"===n.constructor.name))))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer or Buffer.");var n;null===t&&(t=i.NullLogger.instance);for(var o=[],s=0,c=a.parse(e);s<c.length;s++){var u=c[s],l=this.parseMessage(u,t);l&&o.push(l)}return o},e.prototype.writeMessage=function(e){switch(e.type){case i.MessageType.Invocation:return this.writeInvocation(e);case i.MessageType.StreamInvocation:return this.writeStreamInvocation(e);case i.MessageType.StreamItem:return this.writeStreamItem(e);case i.MessageType.Completion:return this.writeCompletion(e);case i.MessageType.Ping:return a.write(c);case i.MessageType.CancelInvocation:return this.writeCancelInvocation(e);default:throw new Error("Invalid message type.")}},e.prototype.parseMessage=function(e,t){if(0===e.length)throw new Error("Invalid payload.");var n=o(this.messagePackOptions).decode(r.Buffer.from(e));if(0===n.length||!(n instanceof Array))throw new Error("Invalid payload.");var a=n[0];switch(a){case i.MessageType.Invocation:return this.createInvocationMessage(this.readHeaders(n),n);case i.MessageType.StreamItem:return this.createStreamItemMessage(this.readHeaders(n),n);case i.MessageType.Completion:return this.createCompletionMessage(this.readHeaders(n),n);case i.MessageType.Ping:return this.createPingMessage(n);case i.MessageType.Close:return this.createCloseMessage(n);default:return t.log(i.LogLevel.Information,"Unknown message type '"+a+"' ignored."),null}},e.prototype.createCloseMessage=function(e){if(e.length<2)throw new Error("Invalid payload for Close message.");return{allowReconnect:e.length>=3?e[2]:void 0,error:e[1],type:i.MessageType.Close}},e.prototype.createPingMessage=function(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:i.MessageType.Ping}},e.prototype.createInvocationMessage=function(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");var n=t[2];return n?{arguments:t[4],headers:e,invocationId:n,streamIds:[],target:t[3],type:i.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:i.MessageType.Invocation}},e.prototype.createStreamItemMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:i.MessageType.StreamItem}},e.prototype.createCompletionMessage=function(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");var n,r,o=t[3];if(o!==this.voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");switch(o){case this.errorResult:n=t[4];break;case this.nonVoidResult:r=t[4]}return{error:n,headers:e,invocationId:t[2],result:r,type:i.MessageType.Completion}},e.prototype.writeInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamInvocation=function(e){var t,n=o(this.messagePackOptions);return t=e.streamIds?n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):n.encode([i.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),a.write(t.slice())},e.prototype.writeStreamItem=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return a.write(t.slice())},e.prototype.writeCompletion=function(e){var t,n=o(this.messagePackOptions),r=e.error?this.errorResult:e.result?this.nonVoidResult:this.voidResult;switch(r){case this.errorResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.error]);break;case this.voidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r]);break;case this.nonVoidResult:t=n.encode([i.MessageType.Completion,e.headers||{},e.invocationId,r,e.result])}return a.write(t.slice())},e.prototype.writeCancelInvocation=function(e){var t=o(this.messagePackOptions).encode([i.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return a.write(t.slice())},e.prototype.readHeaders=function(e){var t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t},e}(),l="0.0.0-DEV_BUILD"}]); \ No newline at end of file diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index e56772d32f65..28659543a3aa 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -88,8 +88,8 @@ public void CanInfluenceHeadDuringPrerender() BeginInteractivity(); // Wait for elements to be recreated with internal ids to permit mutation - WaitForNewElement(ref metaWithBindings, "meta-with-bindings"); - WaitForNewElement(ref metaNoBindings, "meta-no-bindings"); + metaWithBindings = WaitForNewElement(metaWithBindings, "meta-with-bindings"); + metaNoBindings = WaitForNewElement(metaNoBindings, "meta-no-bindings"); // Validate updated head after prerender Browser.Equal("Initial title", () => Browser.Title); @@ -102,18 +102,18 @@ public void CanInfluenceHeadDuringPrerender() inputMetaBinding.SendKeys("Updated meta content\n"); // Wait for meta tag to be recreated with new attributes - WaitForNewElement(ref metaWithBindings, "meta-with-bindings"); + metaWithBindings = WaitForNewElement(metaWithBindings, "meta-with-bindings"); // Validate new meta content attribute Browser.Equal("Updated meta content", () => metaWithBindings.GetAttribute("content")); - void WaitForNewElement(ref IWebElement existingElement, string id) + IWebElement WaitForNewElement(IWebElement existingElement, string id) { var newElement = existingElement; Browser.NotEqual(existingElement, () => newElement = Browser.FindElement(By.Id(id)) ?? newElement); - existingElement = newElement; + return newElement; } } diff --git a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor index 6a6f3dc568e8..1242213bb7a1 100644 --- a/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ModifyHeadComponent.razor @@ -1,4 +1,4 @@ -@using Microsoft.AspNetCore.Components.Web.Extensions +@using Microsoft.AspNetCore.Components.Web.Extensions.Head <p> Multiple title elements:<br /> @@ -25,7 +25,7 @@ { var metaId = i; - <button id="button-meta-@i" @onclick="() => Toggle(ref metas[metaId])"> + <button id="button-meta-@i" @onclick="() => Toggle(metas, metaId)"> @GetToggleString(metas[metaId]) meta @metaId</button> if (metas[metaId]) @@ -42,7 +42,7 @@ { var linkId = i; - <button id="button-link-@i" @onclick="() => Toggle(ref links[linkId])"> + <button id="button-link-@i" @onclick="() => Toggle(links, linkId)"> @GetToggleString(links[linkId]) link @linkId</button> if (links[linkId]) @@ -102,9 +102,9 @@ private string linkAttribute1 = "First attribute"; private string linkAttribute2 = "Second attribute"; - private void Toggle(ref bool b) + private void Toggle(bool[] states, int index) { - b = !b; + states[index] = !states[index]; StateHasChanged(); } diff --git a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor index 73527432faf9..7a879fc3fe8c 100644 --- a/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/PrerenderedHeadComponent.razor @@ -1,6 +1,6 @@ @page "/prerendered-head" -@using Microsoft.AspNetCore.Components.Web.Extensions +@using Microsoft.AspNetCore.Components.Web.Extensions.Head @using Microsoft.JSInterop @inject IJSRuntime JSRuntime