diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fa1385d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..1aadb66 --- /dev/null +++ b/404.html @@ -0,0 +1,37 @@ + + + + + + + Blazor SpeechSynthesis Sample Site - WebAssembly App + + + + + + + + + + + + + +
+
Loading...
+ +
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + + diff --git a/SampleSite.Client.styles.css b/SampleSite.Client.styles.css new file mode 100644 index 0000000..9e654e5 --- /dev/null +++ b/SampleSite.Client.styles.css @@ -0,0 +1,2 @@ +@import '_content/SampleSite.Components/SampleSite.Components.bundle.scp.css'; + diff --git a/_content/SampleSite.Components/SampleSite.Components.bundle.scp.css b/_content/SampleSite.Components/SampleSite.Components.bundle.scp.css new file mode 100644 index 0000000..4e73e30 --- /dev/null +++ b/_content/SampleSite.Components/SampleSite.Components.bundle.scp.css @@ -0,0 +1,21 @@ +/* _content/SampleSite.Components/Pages/Index.razor.rz.scp.css */ +.status .indicators[b-e5tgv1r2ba] { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + + .status .indicators div[b-e5tgv1r2ba] { + border: solid 1px #888; + border-radius: 6px; + width: 5rem; + text-align: center; + padding: 0.2rem 0; + background-color: #333; + color: #888; + margin-bottom: 0.5rem; + } + + .status .indicators div.active[b-e5tgv1r2ba] { + color: #6f6; + } diff --git a/_content/Toolbelt.Blazor.GetProperty.Script/Toolbelt.Blazor.GetProperty.Script.lib.module.js b/_content/Toolbelt.Blazor.GetProperty.Script/Toolbelt.Blazor.GetProperty.Script.lib.module.js new file mode 100755 index 0000000..d5f7189 --- /dev/null +++ b/_content/Toolbelt.Blazor.GetProperty.Script/Toolbelt.Blazor.GetProperty.Script.lib.module.js @@ -0,0 +1 @@ +export const beforeStart=()=>{(function(n){var t;(function(n){n.getProperty=n=>n.replace(/^window\./,"").split(".").reduce((n,t)=>typeof n=="undefined"||n===null?n:n[t],window)})(t=n.Blazor||(n.Blazor={}))})(window.Toolbelt||(window.Toolbelt={}))}; \ No newline at end of file diff --git a/_content/Toolbelt.Blazor.SpeechSynthesis/script.min.js b/_content/Toolbelt.Blazor.SpeechSynthesis/script.min.js new file mode 100755 index 0000000..eeb17c8 --- /dev/null +++ b/_content/Toolbelt.Blazor.SpeechSynthesis/script.min.js @@ -0,0 +1,15 @@ +"use strict"; +var Toolbelt; +(function (Toolbelt) { + var Blazor; + (function (Blazor) { + var SpeechSynthesis; + (function (SpeechSynthesis) { + var _a, _b; + const searchParam = ((_b = (_a = document.currentScript) === null || _a === void 0 ? void 0 : _a.getAttribute('src')) === null || _b === void 0 ? void 0 : _b.split('?')[1]) || ''; + SpeechSynthesis.ready = import('./script.module.min.js?' + searchParam).then(m => { + Object.assign(SpeechSynthesis, m.Toolbelt.Blazor.SpeechSynthesis); + }); + })(SpeechSynthesis = Blazor.SpeechSynthesis || (Blazor.SpeechSynthesis = {})); + })(Blazor = Toolbelt.Blazor || (Toolbelt.Blazor = {})); +})(Toolbelt || (Toolbelt = {})); diff --git a/_content/Toolbelt.Blazor.SpeechSynthesis/script.module.min.js b/_content/Toolbelt.Blazor.SpeechSynthesis/script.module.min.js new file mode 100755 index 0000000..9e072b0 --- /dev/null +++ b/_content/Toolbelt.Blazor.SpeechSynthesis/script.module.min.js @@ -0,0 +1 @@ +export var Toolbelt;(function(n){var t;(function(n){var t;(function(n){const u="undefined",f="end",e="error",o="cancel",t=window.speechSynthesis||{paused:!1,pending:!1,speaking:!1},i=typeof t.getVoices!==u,h=i&&t.getVoices().length===0?new Promise(n=>{typeof t.addEventListener===u&&n(),t.addEventListener("voiceschanged",()=>{t.getVoices().length>0&&n()})}):Promise.resolve();let r=[];n.getStatus=()=>({available:i,paused:t.paused,pending:t.pending,speaking:t.speaking});const s=async()=>i?(await h,t.getVoices()):[];n.getNumberOfVoices=async()=>{const n=await s();return n.length};n.getVoices=async n=>{const i=await s(),t=i.map(n=>({"default":n.default,lang:n.lang,localService:n.localService,name:n.name,voiceURI:n.voiceURI}));return n?t.slice(n.begin,n.end):t};n.speak=(u,s)=>{if(!i)return n.getStatus();if(u.voice!==null){const n=u.voice.voiceURI,i=u.voice.lang;u.voice=t.getVoices().find(t=>t.voiceURI===n&&t.lang.replace(/_/ig,"-")===i)}u=Object.assign(new SpeechSynthesisUtterance,u);const c=["boundary",f,e,"mark","pause","resume","start"],h=function(t){const i=n.getStatus();s.invokeMethodAsync("InvokeEvent",t.type,i);(t.type===f||t.type===e||t.type===o)&&(c.forEach(n=>u.removeEventListener(n,h)),r=r.filter(n=>n.f!==h))};return c.forEach(n=>u.addEventListener(n,h)),r.push({f:h}),t.speak(u),setTimeout(()=>{const n=r.filter(n=>n.cancel===!0);n.forEach(n=>n.f({type:o}))},0),n.getStatus()};n.cancel=()=>(i&&(t.cancel(),r.forEach(n=>n.cancel=!0)),n.getStatus());n.pause=()=>(i&&t.pause(),n.getStatus());n.resume=()=>(i&&t.resume(),n.getStatus());((n,i)=>{function r(){try{const n=new SpeechSynthesisUtterance("");n.volume=0;t.speak(n)}catch(u){console.error(u)}n.removeEventListener(i,r)}n.addEventListener(i,r)})(document.body,"click")})(t=n.SpeechSynthesis||(n.SpeechSynthesis={}))})(t=n.Blazor||(n.Blazor={}))})(Toolbelt||(Toolbelt={})); \ No newline at end of file diff --git a/_framework/Microsoft.AspNetCore.Components.Web.wasm b/_framework/Microsoft.AspNetCore.Components.Web.wasm new file mode 100644 index 0000000..43add86 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.Web.wasm differ diff --git a/_framework/Microsoft.AspNetCore.Components.Web.wasm.br b/_framework/Microsoft.AspNetCore.Components.Web.wasm.br new file mode 100644 index 0000000..0938220 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.Web.wasm.br differ diff --git a/_framework/Microsoft.AspNetCore.Components.Web.wasm.gz b/_framework/Microsoft.AspNetCore.Components.Web.wasm.gz new file mode 100644 index 0000000..0b00525 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.Web.wasm.gz differ diff --git a/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm new file mode 100644 index 0000000..265c785 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm differ diff --git a/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.br b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.br new file mode 100644 index 0000000..8e30d6d Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.br differ diff --git a/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.gz b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.gz new file mode 100644 index 0000000..6b9bf20 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.WebAssembly.wasm.gz differ diff --git a/_framework/Microsoft.AspNetCore.Components.wasm b/_framework/Microsoft.AspNetCore.Components.wasm new file mode 100644 index 0000000..1b44576 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.wasm differ diff --git a/_framework/Microsoft.AspNetCore.Components.wasm.br b/_framework/Microsoft.AspNetCore.Components.wasm.br new file mode 100644 index 0000000..803b396 Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.wasm.br differ diff --git a/_framework/Microsoft.AspNetCore.Components.wasm.gz b/_framework/Microsoft.AspNetCore.Components.wasm.gz new file mode 100644 index 0000000..8afb6ed Binary files /dev/null and b/_framework/Microsoft.AspNetCore.Components.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm new file mode 100644 index 0000000..70b5eb1 Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm differ diff --git a/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.br b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.br new file mode 100644 index 0000000..450163c Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.gz b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.gz new file mode 100644 index 0000000..b047a76 Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Abstractions.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Configuration.Json.wasm b/_framework/Microsoft.Extensions.Configuration.Json.wasm new file mode 100644 index 0000000..2c5f103 Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Json.wasm differ diff --git a/_framework/Microsoft.Extensions.Configuration.Json.wasm.br b/_framework/Microsoft.Extensions.Configuration.Json.wasm.br new file mode 100644 index 0000000..3fcfd51 Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Json.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Configuration.Json.wasm.gz b/_framework/Microsoft.Extensions.Configuration.Json.wasm.gz new file mode 100644 index 0000000..5901264 Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.Json.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Configuration.wasm b/_framework/Microsoft.Extensions.Configuration.wasm new file mode 100644 index 0000000..515b04b Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.wasm differ diff --git a/_framework/Microsoft.Extensions.Configuration.wasm.br b/_framework/Microsoft.Extensions.Configuration.wasm.br new file mode 100644 index 0000000..6ee7a9a Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Configuration.wasm.gz b/_framework/Microsoft.Extensions.Configuration.wasm.gz new file mode 100644 index 0000000..0311dce Binary files /dev/null and b/_framework/Microsoft.Extensions.Configuration.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm new file mode 100644 index 0000000..63d4d1f Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br new file mode 100644 index 0000000..55d8d73 Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.br differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.gz b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.gz new file mode 100644 index 0000000..0b276d8 Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.wasm b/_framework/Microsoft.Extensions.DependencyInjection.wasm new file mode 100644 index 0000000..80994da Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.wasm differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.wasm.br b/_framework/Microsoft.Extensions.DependencyInjection.wasm.br new file mode 100644 index 0000000..f4ee8ed Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.wasm.br differ diff --git a/_framework/Microsoft.Extensions.DependencyInjection.wasm.gz b/_framework/Microsoft.Extensions.DependencyInjection.wasm.gz new file mode 100644 index 0000000..a587739 Binary files /dev/null and b/_framework/Microsoft.Extensions.DependencyInjection.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Logging.Abstractions.wasm b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm new file mode 100644 index 0000000..2747a45 Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm differ diff --git a/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.br b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.br new file mode 100644 index 0000000..9fce0a6 Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.gz b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.gz new file mode 100644 index 0000000..64962eb Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.Abstractions.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Logging.wasm b/_framework/Microsoft.Extensions.Logging.wasm new file mode 100644 index 0000000..1e43878 Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.wasm differ diff --git a/_framework/Microsoft.Extensions.Logging.wasm.br b/_framework/Microsoft.Extensions.Logging.wasm.br new file mode 100644 index 0000000..f412f65 Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Logging.wasm.gz b/_framework/Microsoft.Extensions.Logging.wasm.gz new file mode 100644 index 0000000..d1c0499 Binary files /dev/null and b/_framework/Microsoft.Extensions.Logging.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Options.wasm b/_framework/Microsoft.Extensions.Options.wasm new file mode 100644 index 0000000..79045cc Binary files /dev/null and b/_framework/Microsoft.Extensions.Options.wasm differ diff --git a/_framework/Microsoft.Extensions.Options.wasm.br b/_framework/Microsoft.Extensions.Options.wasm.br new file mode 100644 index 0000000..a4e7a5c Binary files /dev/null and b/_framework/Microsoft.Extensions.Options.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Options.wasm.gz b/_framework/Microsoft.Extensions.Options.wasm.gz new file mode 100644 index 0000000..2c06632 Binary files /dev/null and b/_framework/Microsoft.Extensions.Options.wasm.gz differ diff --git a/_framework/Microsoft.Extensions.Primitives.wasm b/_framework/Microsoft.Extensions.Primitives.wasm new file mode 100644 index 0000000..cc1f1bf Binary files /dev/null and b/_framework/Microsoft.Extensions.Primitives.wasm differ diff --git a/_framework/Microsoft.Extensions.Primitives.wasm.br b/_framework/Microsoft.Extensions.Primitives.wasm.br new file mode 100644 index 0000000..4ccb416 Binary files /dev/null and b/_framework/Microsoft.Extensions.Primitives.wasm.br differ diff --git a/_framework/Microsoft.Extensions.Primitives.wasm.gz b/_framework/Microsoft.Extensions.Primitives.wasm.gz new file mode 100644 index 0000000..eab372e Binary files /dev/null and b/_framework/Microsoft.Extensions.Primitives.wasm.gz differ diff --git a/_framework/Microsoft.JSInterop.WebAssembly.wasm b/_framework/Microsoft.JSInterop.WebAssembly.wasm new file mode 100644 index 0000000..7d715d2 Binary files /dev/null and b/_framework/Microsoft.JSInterop.WebAssembly.wasm differ diff --git a/_framework/Microsoft.JSInterop.WebAssembly.wasm.br b/_framework/Microsoft.JSInterop.WebAssembly.wasm.br new file mode 100644 index 0000000..341aa9c Binary files /dev/null and b/_framework/Microsoft.JSInterop.WebAssembly.wasm.br differ diff --git a/_framework/Microsoft.JSInterop.WebAssembly.wasm.gz b/_framework/Microsoft.JSInterop.WebAssembly.wasm.gz new file mode 100644 index 0000000..115b8e0 Binary files /dev/null and b/_framework/Microsoft.JSInterop.WebAssembly.wasm.gz differ diff --git a/_framework/Microsoft.JSInterop.wasm b/_framework/Microsoft.JSInterop.wasm new file mode 100644 index 0000000..2243c99 Binary files /dev/null and b/_framework/Microsoft.JSInterop.wasm differ diff --git a/_framework/Microsoft.JSInterop.wasm.br b/_framework/Microsoft.JSInterop.wasm.br new file mode 100644 index 0000000..4adbe8b Binary files /dev/null and b/_framework/Microsoft.JSInterop.wasm.br differ diff --git a/_framework/Microsoft.JSInterop.wasm.gz b/_framework/Microsoft.JSInterop.wasm.gz new file mode 100644 index 0000000..1cf5f76 Binary files /dev/null and b/_framework/Microsoft.JSInterop.wasm.gz differ diff --git a/_framework/SampleSite.Client.pdb.gz b/_framework/SampleSite.Client.pdb.gz new file mode 100644 index 0000000..834cc32 Binary files /dev/null and b/_framework/SampleSite.Client.pdb.gz differ diff --git a/_framework/SampleSite.Client.wasm b/_framework/SampleSite.Client.wasm new file mode 100644 index 0000000..cc691a2 Binary files /dev/null and b/_framework/SampleSite.Client.wasm differ diff --git a/_framework/SampleSite.Client.wasm.br b/_framework/SampleSite.Client.wasm.br new file mode 100644 index 0000000..c4e0d46 Binary files /dev/null and b/_framework/SampleSite.Client.wasm.br differ diff --git a/_framework/SampleSite.Client.wasm.gz b/_framework/SampleSite.Client.wasm.gz new file mode 100644 index 0000000..8980b14 Binary files /dev/null and b/_framework/SampleSite.Client.wasm.gz differ diff --git a/_framework/SampleSite.Components.pdb.gz b/_framework/SampleSite.Components.pdb.gz new file mode 100644 index 0000000..b3e692f Binary files /dev/null and b/_framework/SampleSite.Components.pdb.gz differ diff --git a/_framework/SampleSite.Components.wasm b/_framework/SampleSite.Components.wasm new file mode 100644 index 0000000..7aef4c7 Binary files /dev/null and b/_framework/SampleSite.Components.wasm differ diff --git a/_framework/SampleSite.Components.wasm.br b/_framework/SampleSite.Components.wasm.br new file mode 100644 index 0000000..5741a0c Binary files /dev/null and b/_framework/SampleSite.Components.wasm.br differ diff --git a/_framework/SampleSite.Components.wasm.gz b/_framework/SampleSite.Components.wasm.gz new file mode 100644 index 0000000..62510f8 Binary files /dev/null and b/_framework/SampleSite.Components.wasm.gz differ diff --git a/_framework/System.Collections.Concurrent.wasm b/_framework/System.Collections.Concurrent.wasm new file mode 100644 index 0000000..3bd73d2 Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm differ diff --git a/_framework/System.Collections.Concurrent.wasm.br b/_framework/System.Collections.Concurrent.wasm.br new file mode 100644 index 0000000..3104073 Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm.br differ diff --git a/_framework/System.Collections.Concurrent.wasm.gz b/_framework/System.Collections.Concurrent.wasm.gz new file mode 100644 index 0000000..b669a34 Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm.gz differ diff --git a/_framework/System.Collections.wasm b/_framework/System.Collections.wasm new file mode 100644 index 0000000..1c5a0aa Binary files /dev/null and b/_framework/System.Collections.wasm differ diff --git a/_framework/System.Collections.wasm.br b/_framework/System.Collections.wasm.br new file mode 100644 index 0000000..89a9fb7 Binary files /dev/null and b/_framework/System.Collections.wasm.br differ diff --git a/_framework/System.Collections.wasm.gz b/_framework/System.Collections.wasm.gz new file mode 100644 index 0000000..4f5c5fc Binary files /dev/null and b/_framework/System.Collections.wasm.gz differ diff --git a/_framework/System.ComponentModel.wasm b/_framework/System.ComponentModel.wasm new file mode 100644 index 0000000..3293a8a Binary files /dev/null and b/_framework/System.ComponentModel.wasm differ diff --git a/_framework/System.ComponentModel.wasm.br b/_framework/System.ComponentModel.wasm.br new file mode 100644 index 0000000..ed264fd Binary files /dev/null and b/_framework/System.ComponentModel.wasm.br differ diff --git a/_framework/System.ComponentModel.wasm.gz b/_framework/System.ComponentModel.wasm.gz new file mode 100644 index 0000000..e5cae36 Binary files /dev/null and b/_framework/System.ComponentModel.wasm.gz differ diff --git a/_framework/System.Console.wasm b/_framework/System.Console.wasm new file mode 100644 index 0000000..0afe0e1 Binary files /dev/null and b/_framework/System.Console.wasm differ diff --git a/_framework/System.Console.wasm.br b/_framework/System.Console.wasm.br new file mode 100644 index 0000000..275416c Binary files /dev/null and b/_framework/System.Console.wasm.br differ diff --git a/_framework/System.Console.wasm.gz b/_framework/System.Console.wasm.gz new file mode 100644 index 0000000..1c0b505 Binary files /dev/null and b/_framework/System.Console.wasm.gz differ diff --git a/_framework/System.Linq.wasm b/_framework/System.Linq.wasm new file mode 100644 index 0000000..dea006e Binary files /dev/null and b/_framework/System.Linq.wasm differ diff --git a/_framework/System.Linq.wasm.br b/_framework/System.Linq.wasm.br new file mode 100644 index 0000000..350e13e Binary files /dev/null and b/_framework/System.Linq.wasm.br differ diff --git a/_framework/System.Linq.wasm.gz b/_framework/System.Linq.wasm.gz new file mode 100644 index 0000000..ba49f54 Binary files /dev/null and b/_framework/System.Linq.wasm.gz differ diff --git a/_framework/System.Memory.wasm b/_framework/System.Memory.wasm new file mode 100644 index 0000000..a599418 Binary files /dev/null and b/_framework/System.Memory.wasm differ diff --git a/_framework/System.Memory.wasm.br b/_framework/System.Memory.wasm.br new file mode 100644 index 0000000..95b8227 Binary files /dev/null and b/_framework/System.Memory.wasm.br differ diff --git a/_framework/System.Memory.wasm.gz b/_framework/System.Memory.wasm.gz new file mode 100644 index 0000000..e65de6a Binary files /dev/null and b/_framework/System.Memory.wasm.gz differ diff --git a/_framework/System.Net.Http.wasm b/_framework/System.Net.Http.wasm new file mode 100644 index 0000000..0a1a061 Binary files /dev/null and b/_framework/System.Net.Http.wasm differ diff --git a/_framework/System.Net.Http.wasm.br b/_framework/System.Net.Http.wasm.br new file mode 100644 index 0000000..dc4f27a Binary files /dev/null and b/_framework/System.Net.Http.wasm.br differ diff --git a/_framework/System.Net.Http.wasm.gz b/_framework/System.Net.Http.wasm.gz new file mode 100644 index 0000000..1064d65 Binary files /dev/null and b/_framework/System.Net.Http.wasm.gz differ diff --git a/_framework/System.Net.Primitives.wasm b/_framework/System.Net.Primitives.wasm new file mode 100644 index 0000000..1e09358 Binary files /dev/null and b/_framework/System.Net.Primitives.wasm differ diff --git a/_framework/System.Net.Primitives.wasm.br b/_framework/System.Net.Primitives.wasm.br new file mode 100644 index 0000000..d5dc63f Binary files /dev/null and b/_framework/System.Net.Primitives.wasm.br differ diff --git a/_framework/System.Net.Primitives.wasm.gz b/_framework/System.Net.Primitives.wasm.gz new file mode 100644 index 0000000..637fc74 Binary files /dev/null and b/_framework/System.Net.Primitives.wasm.gz differ diff --git a/_framework/System.Private.CoreLib.wasm b/_framework/System.Private.CoreLib.wasm new file mode 100644 index 0000000..b06fa4e Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm differ diff --git a/_framework/System.Private.CoreLib.wasm.br b/_framework/System.Private.CoreLib.wasm.br new file mode 100644 index 0000000..eb8662e Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm.br differ diff --git a/_framework/System.Private.CoreLib.wasm.gz b/_framework/System.Private.CoreLib.wasm.gz new file mode 100644 index 0000000..3937183 Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm.gz differ diff --git a/_framework/System.Private.Uri.wasm b/_framework/System.Private.Uri.wasm new file mode 100644 index 0000000..b2f97b9 Binary files /dev/null and b/_framework/System.Private.Uri.wasm differ diff --git a/_framework/System.Private.Uri.wasm.br b/_framework/System.Private.Uri.wasm.br new file mode 100644 index 0000000..a6a91b4 Binary files /dev/null and b/_framework/System.Private.Uri.wasm.br differ diff --git a/_framework/System.Private.Uri.wasm.gz b/_framework/System.Private.Uri.wasm.gz new file mode 100644 index 0000000..41dc514 Binary files /dev/null and b/_framework/System.Private.Uri.wasm.gz differ diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm b/_framework/System.Runtime.InteropServices.JavaScript.wasm new file mode 100644 index 0000000..fe870a5 Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm differ diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm.br b/_framework/System.Runtime.InteropServices.JavaScript.wasm.br new file mode 100644 index 0000000..a01545a Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm.br differ diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz b/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz new file mode 100644 index 0000000..950976c Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz differ diff --git a/_framework/System.Runtime.wasm b/_framework/System.Runtime.wasm new file mode 100644 index 0000000..747950c Binary files /dev/null and b/_framework/System.Runtime.wasm differ diff --git a/_framework/System.Runtime.wasm.br b/_framework/System.Runtime.wasm.br new file mode 100644 index 0000000..98bf32c Binary files /dev/null and b/_framework/System.Runtime.wasm.br differ diff --git a/_framework/System.Runtime.wasm.gz b/_framework/System.Runtime.wasm.gz new file mode 100644 index 0000000..41cfcc9 Binary files /dev/null and b/_framework/System.Runtime.wasm.gz differ diff --git a/_framework/System.Text.Encodings.Web.wasm b/_framework/System.Text.Encodings.Web.wasm new file mode 100644 index 0000000..1c6c420 Binary files /dev/null and b/_framework/System.Text.Encodings.Web.wasm differ diff --git a/_framework/System.Text.Encodings.Web.wasm.br b/_framework/System.Text.Encodings.Web.wasm.br new file mode 100644 index 0000000..b7a2a59 Binary files /dev/null and b/_framework/System.Text.Encodings.Web.wasm.br differ diff --git a/_framework/System.Text.Encodings.Web.wasm.gz b/_framework/System.Text.Encodings.Web.wasm.gz new file mode 100644 index 0000000..06f7c70 Binary files /dev/null and b/_framework/System.Text.Encodings.Web.wasm.gz differ diff --git a/_framework/System.Text.Json.wasm b/_framework/System.Text.Json.wasm new file mode 100644 index 0000000..72ca464 Binary files /dev/null and b/_framework/System.Text.Json.wasm differ diff --git a/_framework/System.Text.Json.wasm.br b/_framework/System.Text.Json.wasm.br new file mode 100644 index 0000000..6818c04 Binary files /dev/null and b/_framework/System.Text.Json.wasm.br differ diff --git a/_framework/System.Text.Json.wasm.gz b/_framework/System.Text.Json.wasm.gz new file mode 100644 index 0000000..8989b9f Binary files /dev/null and b/_framework/System.Text.Json.wasm.gz differ diff --git a/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm new file mode 100644 index 0000000..0e4c954 Binary files /dev/null and b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm differ diff --git a/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.br b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.br new file mode 100644 index 0000000..3acf393 Binary files /dev/null and b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.br differ diff --git a/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.gz b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.gz new file mode 100644 index 0000000..23049db Binary files /dev/null and b/_framework/Toolbelt.Blazor.SpeechSynthesis.wasm.gz differ diff --git a/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm new file mode 100644 index 0000000..85bf527 Binary files /dev/null and b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm differ diff --git a/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.br b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.br new file mode 100644 index 0000000..c6ecab7 Binary files /dev/null and b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.br differ diff --git a/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.gz b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.gz new file mode 100644 index 0000000..a87397f Binary files /dev/null and b/_framework/Toolbelt.Web.CssClassInlineBuilder.wasm.gz differ diff --git a/_framework/blazor.boot.json b/_framework/blazor.boot.json new file mode 100644 index 0000000..e75cfdb --- /dev/null +++ b/_framework/blazor.boot.json @@ -0,0 +1,63 @@ +{ + "mainAssemblyName": "SampleSite.Client", + "resources": { + "hash": "sha256-hyyrXWGfMG7YW/yI9Zj5+VXBXrSdMVSFwSjyeYJxd/M=", + "jsModuleNative": { + "dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js": "sha256-g8bKVz5br0vZo8O1TFP0HBAc7EXo7/RTcgoKndmiiQo=" + }, + "jsModuleRuntime": { + "dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js": "sha256-giy/yLhvB9hsa1DCWVWnpxpuf6kKvlYFh5rifY3mpQg=" + }, + "wasmNative": { + "dotnet.native.wasm": "sha256-2oCskgXvh9W36oY/AXS+FmwlPWmxwkGTp1yEo6DgWWo=" + }, + "assembly": { + "Microsoft.AspNetCore.Components.wasm": "sha256-lWlP0LfffKfnbsoozAfhEx/jJ9Dqz2nnfuRo/S/Zhio=", + "Microsoft.AspNetCore.Components.Web.wasm": "sha256-Z/wRmS5DXpmvmF9219Ymefqr20QCHe6O7SX/mETpess=", + "Microsoft.AspNetCore.Components.WebAssembly.wasm": "sha256-Awvhje/XAifjc2yP/f7Hk9+AOQ7N+2PnR7nFZ0FE3yM=", + "Microsoft.Extensions.Configuration.Abstractions.wasm": "sha256-Lm8PgMxBQvbD+lECY6dDVM7LIPbtdDm5YucZAWMYNGk=", + "Microsoft.Extensions.Configuration.Json.wasm": "sha256-QH0Zqn1whMPALEh+kWPAg07IR4ljrAeAZ0lkYfknYxg=", + "Microsoft.Extensions.Configuration.wasm": "sha256-H/PKTAwK846Gs+ue37b9NNFwx9fYi4evER1qBgS4mfg=", + "Microsoft.Extensions.DependencyInjection.Abstractions.wasm": "sha256-gfAxuF8FmrHLBsjrug3KQ28byykj7hdGldPGROwG4gg=", + "Microsoft.Extensions.DependencyInjection.wasm": "sha256-8dGlJAwPr8ODn5db6rqlxLD/OevhG5p+DA0EvYgQbmo=", + "Microsoft.Extensions.Logging.Abstractions.wasm": "sha256-mB91KAsafvMrImI6qCpQt/YuR2bOOGXnefogxGGEGOQ=", + "Microsoft.Extensions.Logging.wasm": "sha256-t38y5WmdaYjGt/bFpuVo6gJebsqED2oU6prHjGgKwbM=", + "Microsoft.Extensions.Options.wasm": "sha256-M4J9PIWYbklKx35QujvVXeri/Ps6r4ZWgAJSSnNCyog=", + "Microsoft.Extensions.Primitives.wasm": "sha256-OXyNQ55r06E4JpGSEP2eHiET7VWmfYTLFd1H1wuNDqc=", + "Microsoft.JSInterop.wasm": "sha256-u4AUMJwEAtBpzoTiSXab1gfa3oVcXhcxdzNJ7ouj/d4=", + "Microsoft.JSInterop.WebAssembly.wasm": "sha256-t4vh9aGBwsDHrtxBZc5N9gru8hNEhJ1dRbHTZhvQ2DQ=", + "netstandard.wasm": "sha256-6E+Dn/IpYQHO4ukpIiY5I46duoBVY4Sc8PRucdMi6ZY=", + "SampleSite.Client.wasm": "sha256-gkB7JMUBoEf3WZ1lCLMBVuJ8zMTAMQejq1/+POj/Fl4=", + "SampleSite.Components.wasm": "sha256-08WRzevyylyD2NZ57Uz4FBIzRY/Wvgr55jyK9yLRjeg=", + "System.Collections.Concurrent.wasm": "sha256-dBMoFewNBA++q4bMqMU7Pil5BgqeLvfUDntibpA43Uw=", + "System.Collections.wasm": "sha256-S9iXY4cZYGdMOTkuDIG3QRRvtaugLwRV6R6pVXoBG7k=", + "System.ComponentModel.wasm": "sha256-V9DbGl95R3W4XATA/S28mTHULqEzXRHNGXxJxJcjQ5k=", + "System.Console.wasm": "sha256-vnXf/VY03MSQiiU7IOAf2bKli6UzRRl4ZVQVn0jKbeQ=", + "System.Linq.wasm": "sha256-uGnLadWxAxd6iaCUX+8QGWu6EJRmyg+Rz+JSO0qajFs=", + "System.Memory.wasm": "sha256-x0iKTcBvaUX6NJkBbBFSwO6lCT7fG8aeJC7bjIO3WYU=", + "System.Net.Http.wasm": "sha256-jK+HsKgrpnnPOZtKVfqlXDc5h7PUBelJIcAqEHR/E8s=", + "System.Net.Primitives.wasm": "sha256-hxmysbYJ84OzrP2l2QaXJbKNDs995AaTmCzBYTDxUGA=", + "System.Private.CoreLib.wasm": "sha256-LxgERWVEpUh+In3d58JSuhO4Ut2ZyWYq512+N/ros/Y=", + "System.Private.Uri.wasm": "sha256-aKo2bXljh04Q/1JbvOrKljyPKQvjPIbQITts6APTQpg=", + "System.Runtime.InteropServices.JavaScript.wasm": "sha256-NLAWwZbVZmiefYNNr6WMHpLq/qFNnPnwhVfNmAwFcMM=", + "System.Runtime.wasm": "sha256-kBP7hKp0w4URKZUgzgCs9J88fZLlOoU+hFS3vaeeXko=", + "System.Text.Encodings.Web.wasm": "sha256-Lf3E59PmYIq/S/UdvtMZyaXhYM/RbN0vJD8NTSgw/cs=", + "System.Text.Json.wasm": "sha256-t1eZDYlVVlAWSI5L4cceG9OYmW/K0j5tafZWtRsmeFo=", + "Toolbelt.Blazor.SpeechSynthesis.wasm": "sha256-vZ/y+LeBouZuw1c5qKJkmus1Q7bdaF7k/OmEg6aJt8g=", + "Toolbelt.Web.CssClassInlineBuilder.wasm": "sha256-ESBdh1g61atKWOaQ1AJXC3Ssp7CDg+UlW2QY/Ar044Y=" + }, + "libraryInitializers": { + "_content/Toolbelt.Blazor.GetProperty.Script/Toolbelt.Blazor.GetProperty.Script.lib.module.js": "sha256-/TMH4QckAzZIBReYWx7mcbbvfk0hWzQXUzwOQdv7P6E=" + }, + "modulesAfterConfigLoaded": { + "../_content/Toolbelt.Blazor.GetProperty.Script/Toolbelt.Blazor.GetProperty.Script.lib.module.js": "sha256-/TMH4QckAzZIBReYWx7mcbbvfk0hWzQXUzwOQdv7P6E=" + } + }, + "cacheBootResources": true, + "debugLevel": 0, + "linkerEnabled": true, + "globalizationMode": "invariant", + "extensions": { + "blazor": {} + } +} \ No newline at end of file diff --git a/_framework/blazor.boot.json.br b/_framework/blazor.boot.json.br new file mode 100644 index 0000000..373d85e Binary files /dev/null and b/_framework/blazor.boot.json.br differ diff --git a/_framework/blazor.boot.json.gz b/_framework/blazor.boot.json.gz new file mode 100644 index 0000000..96ae2dc Binary files /dev/null and b/_framework/blazor.boot.json.gz differ diff --git a/_framework/blazor.webassembly.js b/_framework/blazor.webassembly.js new file mode 100755 index 0000000..f7a1c79 --- /dev/null +++ b/_framework/blazor.webassembly.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,t,n;!function(e){const t=[],n="__jsObjectId",r="__dotNetObject",o="__byte[]",i="__dotNetStream",s="__jsStreamReferenceLength";let a,c;class l{constructor(e){this._jsObject=e,this._cachedFunctions=new Map}findFunction(e){const t=this._cachedFunctions.get(e);if(t)return t;let n,r=this._jsObject;if(e.split(".").forEach((t=>{if(!(t in r))throw new Error(`Could not find '${e}' ('${t}' was undefined).`);n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error(`The value '${e}' is not a function.`)}getWrappedObject(){return this._jsObject}}const d={0:new l(window)};d[0]._cachedFunctions.set("import",(e=>("string"==typeof e&&e.startsWith("./")&&(e=new URL(e.substr(2),document.baseURI).toString()),import(e))));let u,f=1;function m(e){t.push(e)}function p(e){if(e&&"object"==typeof e){d[f]=new l(e);const t={[n]:f};return f++,t}throw new Error(`Cannot create a JSObjectReference from the value '${e}'.`)}function h(e){let t=-1;if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Blob)t=e.size;else{if(!(e.buffer instanceof ArrayBuffer))throw new Error("Supplied value is not a typed array or blob.");if(void 0===e.byteLength)throw new Error(`Cannot create a JSStreamReference from the value '${e}' as it doesn't have a byteLength.`);t=e.byteLength}const r={[s]:t};try{const t=p(e);r[n]=t[n]}catch(t){throw new Error(`Cannot create a JSStreamReference from the value '${e}'.`)}return r}function v(e,n){c=e;const r=n?JSON.parse(n,((e,n)=>t.reduce(((t,n)=>n(e,t)),n))):null;return c=void 0,r}function g(){if(void 0===a)throw new Error("No call dispatcher has been set.");if(null===a)throw new Error("There are multiple .NET runtimes present, so a default dispatcher could not be resolved. Use DotNetObject to invoke .NET instance methods.");return a}e.attachDispatcher=function(e){const t=new y(e);return void 0===a?a=t:a&&(a=null),t},e.attachReviver=m,e.invokeMethod=function(e,t,...n){return g().invokeDotNetStaticMethod(e,t,...n)},e.invokeMethodAsync=function(e,t,...n){return g().invokeDotNetStaticMethodAsync(e,t,...n)},e.createJSObjectReference=p,e.createJSStreamReference=h,e.disposeJSObjectReference=function(e){const t=e&&e[n];"number"==typeof t&&E(t)},function(e){e[e.Default=0]="Default",e[e.JSObjectReference=1]="JSObjectReference",e[e.JSStreamReference=2]="JSStreamReference",e[e.JSVoidResult=3]="JSVoidResult"}(u=e.JSCallResultType||(e.JSCallResultType={}));class y{constructor(e){this._dotNetCallDispatcher=e,this._byteArraysToBeRevived=new Map,this._pendingDotNetToJSStreams=new Map,this._pendingAsyncCalls={},this._nextAsyncCallId=1}getDotNetCallDispatcher(){return this._dotNetCallDispatcher}invokeJSFromDotNet(e,t,n,r){const o=v(this,t),i=A(w(e,r)(...o||[]),n);return null==i?null:_(this,i)}beginInvokeJSFromDotNet(e,t,n,r,o){const i=new Promise((e=>{const r=v(this,n);e(w(t,o)(...r||[]))}));e&&i.then((t=>_(this,[e,!0,A(t,r)]))).then((t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!0,t)),(t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,b(t)]))))}endInvokeDotNetFromJS(e,t,n){const r=t?v(this,n):new Error(n);this.completePendingCall(parseInt(e,10),t,r)}invokeDotNetStaticMethod(e,t,...n){return this.invokeDotNetMethod(e,t,null,n)}invokeDotNetStaticMethodAsync(e,t,...n){return this.invokeDotNetMethodAsync(e,t,null,n)}invokeDotNetMethod(e,t,n,r){if(this._dotNetCallDispatcher.invokeDotNetFromJS){const o=_(this,r),i=this._dotNetCallDispatcher.invokeDotNetFromJS(e,t,n,o);return i?v(this,i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeDotNetMethodAsync instead.")}invokeDotNetMethodAsync(e,t,n,r){if(e&&n)throw new Error(`For instance method calls, assemblyName should be null. Received '${e}'.`);const o=this._nextAsyncCallId++,i=new Promise(((e,t)=>{this._pendingAsyncCalls[o]={resolve:e,reject:t}}));try{const i=_(this,r);this._dotNetCallDispatcher.beginInvokeDotNetFromJS(o,e,t,n,i)}catch(e){this.completePendingCall(o,!1,e)}return i}receiveByteArray(e,t){this._byteArraysToBeRevived.set(e,t)}processByteArray(e){const t=this._byteArraysToBeRevived.get(e);return t?(this._byteArraysToBeRevived.delete(e),t):null}supplyDotNetStream(e,t){if(this._pendingDotNetToJSStreams.has(e)){const n=this._pendingDotNetToJSStreams.get(e);this._pendingDotNetToJSStreams.delete(e),n.resolve(t)}else{const n=new C;n.resolve(t),this._pendingDotNetToJSStreams.set(e,n)}}getDotNetStreamPromise(e){let t;if(this._pendingDotNetToJSStreams.has(e))t=this._pendingDotNetToJSStreams.get(e).streamPromise,this._pendingDotNetToJSStreams.delete(e);else{const n=new C;this._pendingDotNetToJSStreams.set(e,n),t=n.streamPromise}return t}completePendingCall(e,t,n){if(!this._pendingAsyncCalls.hasOwnProperty(e))throw new Error(`There is no pending async call with ID ${e}.`);const r=this._pendingAsyncCalls[e];delete this._pendingAsyncCalls[e],t?r.resolve(n):r.reject(n)}}function b(e){return e instanceof Error?`${e.message}\n${e.stack}`:e?e.toString():"null"}function w(e,t){const n=d[t];if(n)return n.findFunction(e);throw new Error(`JS object instance with ID ${t} does not exist (has it been disposed?).`)}function E(e){delete d[e]}e.findJSFunction=w,e.disposeJSObjectReferenceById=E;class I{constructor(e,t){this._id=e,this._callDispatcher=t}invokeMethod(e,...t){return this._callDispatcher.invokeDotNetMethod(null,e,this._id,t)}invokeMethodAsync(e,...t){return this._callDispatcher.invokeDotNetMethodAsync(null,e,this._id,t)}dispose(){this._callDispatcher.invokeDotNetMethodAsync(null,"__Dispose",this._id,null).catch((e=>console.error(e)))}serializeAsArg(){return{[r]:this._id}}}e.DotNetObject=I,m((function(e,t){if(t&&"object"==typeof t){if(t.hasOwnProperty(r))return new I(t[r],c);if(t.hasOwnProperty(n)){const e=t[n],r=d[e];if(r)return r.getWrappedObject();throw new Error(`JS object instance with Id '${e}' does not exist. It may have been disposed.`)}if(t.hasOwnProperty(o)){const e=t[o],n=c.processByteArray(e);if(void 0===n)throw new Error(`Byte array index '${e}' does not exist.`);return n}if(t.hasOwnProperty(i)){const e=t[i],n=c.getDotNetStreamPromise(e);return new S(n)}}return t}));class S{constructor(e){this._streamPromise=e}stream(){return this._streamPromise}async arrayBuffer(){return new Response(await this.stream()).arrayBuffer()}}class C{constructor(){this.streamPromise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}function A(e,t){switch(t){case u.Default:return e;case u.JSObjectReference:return p(e);case u.JSStreamReference:return h(e);case u.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${t}'.`)}}let N=0;function _(e,t){N=0,c=e;const n=JSON.stringify(t,D);return c=void 0,n}function D(e,t){if(t instanceof I)return t.serializeAsArg();if(t instanceof Uint8Array){c.getDotNetCallDispatcher().sendByteArray(N,t);const e={[o]:N};return N++,e}return t}}(e||(e={})),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||(t={})),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",e[e.namedEvent=10]="namedEvent"}(n||(n={}));class r{constructor(e,t){this.componentId=e,this.fieldValue=t}static fromEvent(e,t){const n=t.target;if(n instanceof Element){const t=function(e){return e instanceof HTMLInputElement?e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value}:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?{value:e.value}:null}(n);if(t)return new r(e,t.value)}return null}}const o=new Map,i=new Map,s=[];function a(e){return o.get(e)}function c(e){const t=o.get(e);return(null==t?void 0:t.browserEventName)||e}function l(e,t){e.forEach((e=>o.set(e,t)))}function d(e){const t=[];for(let n=0;ne.selected)).map((e=>e.value))}}{const e=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(t);return{value:e?!!t.checked:t.value}}}}),l(["copy","cut","paste"],{createEventArgs:e=>({type:e.type})}),l(["drag","dragend","dragenter","dragleave","dragover","dragstart","drop"],{createEventArgs:e=>{return{...u(t=e),dataTransfer:t.dataTransfer?{dropEffect:t.dataTransfer.dropEffect,effectAllowed:t.dataTransfer.effectAllowed,files:Array.from(t.dataTransfer.files).map((e=>e.name)),items:Array.from(t.dataTransfer.items).map((e=>({kind:e.kind,type:e.type}))),types:t.dataTransfer.types}:null};var t}}),l(["focus","blur","focusin","focusout"],{createEventArgs:e=>({type:e.type})}),l(["keydown","keyup","keypress"],{createEventArgs:e=>{return{key:(t=e).key,code:t.code,location:t.location,repeat:t.repeat,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["contextmenu","click","mouseover","mouseout","mousemove","mousedown","mouseup","mouseleave","mouseenter","dblclick"],{createEventArgs:e=>u(e)}),l(["error"],{createEventArgs:e=>{return{message:(t=e).message,filename:t.filename,lineno:t.lineno,colno:t.colno,type:t.type};var t}}),l(["loadstart","timeout","abort","load","loadend","progress"],{createEventArgs:e=>{return{lengthComputable:(t=e).lengthComputable,loaded:t.loaded,total:t.total,type:t.type};var t}}),l(["touchcancel","touchend","touchmove","touchenter","touchleave","touchstart"],{createEventArgs:e=>{return{detail:(t=e).detail,touches:d(t.touches),targetTouches:d(t.targetTouches),changedTouches:d(t.changedTouches),ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["gotpointercapture","lostpointercapture","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerup"],{createEventArgs:e=>{return{...u(t=e),pointerId:t.pointerId,width:t.width,height:t.height,pressure:t.pressure,tiltX:t.tiltX,tiltY:t.tiltY,pointerType:t.pointerType,isPrimary:t.isPrimary};var t}}),l(["wheel","mousewheel"],{createEventArgs:e=>{return{...u(t=e),deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,deltaMode:t.deltaMode};var t}}),l(["toggle"],{createEventArgs:()=>({})});const f=["date","datetime-local","month","time","week"],m=new Map;let p,h,v=0;const g={async add(e,t,n){if(!n)throw new Error("initialParameters must be an object, even if empty.");const r="__bl-dynamic-root:"+(++v).toString();m.set(r,e);const o=await w().invokeMethodAsync("AddRootComponent",t,r),i=new b(o,h[t]);return await i.setParameters(n),i}};class y{invoke(e){return this._callback(e)}setCallback(t){this._selfJSObjectReference||(this._selfJSObjectReference=e.createJSObjectReference(this)),this._callback=t}getJSObjectReference(){return this._selfJSObjectReference}dispose(){this._selfJSObjectReference&&e.disposeJSObjectReference(this._selfJSObjectReference)}}class b{constructor(e,t){this._jsEventCallbackWrappers=new Map,this._componentId=e;for(const e of t)"eventcallback"===e.type&&this._jsEventCallbackWrappers.set(e.name.toLowerCase(),new y)}setParameters(e){const t={},n=Object.entries(e||{}),r=n.length;for(const[e,r]of n){const n=this._jsEventCallbackWrappers.get(e.toLowerCase());n&&r?(n.setCallback(r),t[e]=n.getJSObjectReference()):t[e]=r}return w().invokeMethodAsync("SetRootComponentParameters",this._componentId,r,t)}async dispose(){if(null!==this._componentId){await w().invokeMethodAsync("RemoveRootComponent",this._componentId),this._componentId=null;for(const e of this._jsEventCallbackWrappers.values())e.dispose()}}}function w(){if(!p)throw new Error("Dynamic root components have not been enabled in this application.");return p}const E=new Map,I=new Map,S=new Map;let C;function A(e,t,n){return _(e,t.eventHandlerId,(()=>N(e).invokeMethodAsync("DispatchEventAsync",t,n)))}function N(e){const t=E.get(e);if(!t)throw new Error(`No interop methods are registered for renderer ${e}`);return t}new Promise((e=>{C=e}));let _=(e,t,n)=>n();const D=M(["abort","blur","canplay","canplaythrough","change","cuechange","durationchange","emptied","ended","error","focus","load","loadeddata","loadedmetadata","loadend","loadstart","mouseenter","mouseleave","pointerenter","pointerleave","pause","play","playing","progress","ratechange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeupdate","toggle","unload","volumechange","waiting","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),R={submit:!0},k=M(["click","dblclick","mousedown","mousemove","mouseup"]);class F{constructor(e){this.browserRendererId=e,this.afterClickCallbacks=[];const t=++F.nextEventDelegatorId;this.eventsCollectionKey=`_blazorEvents_${t}`,this.eventInfoStore=new T(this.onGlobalEvent.bind(this))}setListener(e,t,n,r){const o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{const i={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(i),o.setHandler(t,i)}}getHandler(e){return this.eventInfoStore.get(e)}removeListener(e){const t=this.eventInfoStore.remove(e);if(t){const e=t.element,n=this.getEventHandlerInfosForElement(e,!1);n&&n.removeHandler(t.eventName)}}notifyAfterClick(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")}setStopPropagation(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)}setPreventDefault(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)}onGlobalEvent(e){if(!(e.target instanceof Element))return;this.dispatchGlobalEventToAllElements(e.type,e);const t=(n=e.type,i.get(n));var n;t&&t.forEach((t=>this.dispatchGlobalEventToAllElements(t,e))),"click"===e.type&&this.afterClickCallbacks.forEach((t=>t(e)))}dispatchGlobalEventToAllElements(e,t){const n=t.composedPath();let o=n.shift(),i=null,s=!1;const c=Object.prototype.hasOwnProperty.call(D,e);let l=!1;for(;o;){const f=o,m=this.getEventHandlerInfosForElement(f,!1);if(m){const n=m.getHandler(e);if(n&&(d=f,u=t.type,!((d instanceof HTMLButtonElement||d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement)&&Object.prototype.hasOwnProperty.call(k,u)&&d.disabled))){if(!s){const n=a(e);i=(null==n?void 0:n.createEventArgs)?n.createEventArgs(t):{},s=!0}Object.prototype.hasOwnProperty.call(R,t.type)&&t.preventDefault(),A(this.browserRendererId,{eventHandlerId:n.eventHandlerId,eventName:e,eventFieldInfo:r.fromEvent(n.renderingComponentId,t)},i)}m.stopPropagation(e)&&(l=!0),m.preventDefault(e)&&t.preventDefault()}o=c||l?void 0:n.shift()}var d,u}getEventHandlerInfosForElement(e,t){return Object.prototype.hasOwnProperty.call(e,this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new O:null}}F.nextEventDelegatorId=0;class T{constructor(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={},s.push(this.handleEventNameAliasAdded.bind(this))}add(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error(`Event ${e.eventHandlerId} is already tracked`);this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)}get(e){return this.infosByEventHandlerId[e]}addGlobalListener(e){if(e=c(e),Object.prototype.hasOwnProperty.call(this.countByEventName,e))this.countByEventName[e]++;else{this.countByEventName[e]=1;const t=Object.prototype.hasOwnProperty.call(D,e);document.addEventListener(e,this.globalListener,t)}}update(e,t){if(Object.prototype.hasOwnProperty.call(this.infosByEventHandlerId,t))throw new Error(`Event ${t} is already tracked`);const n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n}remove(e){const t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];const n=c(t.eventName);0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t}handleEventNameAliasAdded(e,t){if(Object.prototype.hasOwnProperty.call(this.countByEventName,e)){const n=this.countByEventName[e];delete this.countByEventName[e],document.removeEventListener(e,this.globalListener),this.addGlobalListener(t),this.countByEventName[t]+=n-1}}}class O{constructor(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}getHandler(e){return Object.prototype.hasOwnProperty.call(this.handlers,e)?this.handlers[e]:null}setHandler(e,t){this.handlers[e]=t}removeHandler(e){delete this.handlers[e]}preventDefault(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]}stopPropagation(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]}}function M(e){const t={};return e.forEach((e=>{t[e]=!0})),t}const x=Symbol(),L=Symbol(),P=Symbol();function B(e,t){if(x in e)return e;const n=[];if(e.childNodes.length>0){if(!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");e.childNodes.forEach((t=>{const r=B(t,!0);r[L]=e,n.push(r)}))}return e[x]=n,e}function J(e){const t=K(e);for(;t.length;)$(e,0)}function j(e,t){const n=document.createComment("!");return H(n,e,t),n}function H(e,t,n){const r=e;let o=e;if(x in e){const t=G(r);if(t!==e){const n=new Range;n.setStartBefore(e),n.setEndAfter(t),o=n.extractContents()}}const i=U(r);if(i){const e=K(i),t=Array.prototype.indexOf.call(e,r);e.splice(t,1),delete r[L]}const s=K(t);if(n0;)$(n,0)}const r=n;r.parentNode.removeChild(r)}function U(e){return e[L]||null}function z(e,t){return K(e)[t]}function W(e){const t=X(e);return"http://www.w3.org/2000/svg"===t.namespaceURI&&"foreignObject"!==t.tagName}function K(e){return e[x]}function V(e){const t=K(U(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function q(e,t){const n=K(e);t.forEach((e=>{e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=G(e.moveRangeStart)})),t.forEach((t=>{const r=document.createComment("marker");t.moveToBeforeMarker=r;const o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):Y(r,e)})),t.forEach((e=>{const t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd;let i=r;for(;i;){const e=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=e}n.removeChild(t)})),t.forEach((e=>{n[e.toSiblingIndex]=e.moveRangeStart}))}function X(e){if(e instanceof Element||e instanceof DocumentFragment)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function Y(e,t){if(t instanceof Element||t instanceof DocumentFragment)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}`);{const n=V(t);n?n.parentNode.insertBefore(e,n):Y(e,U(t))}}}function G(e){if(e instanceof Element||e instanceof DocumentFragment)return e;const t=V(e);if(t)return t.previousSibling;{const t=U(e);return t instanceof Element||t instanceof DocumentFragment?t.lastChild:G(t)}}function Z(e){return`_bl_${e}`}const Q="__internalId";e.attachReviver(((e,t)=>t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,Q)&&"string"==typeof t[Q]?function(e){const t=`[${Z(e)}]`;return document.querySelector(t)}(t[Q]):t));const ee="_blazorDeferredValue";function te(e){return"select-multiple"===e.type}function ne(e,t){e.value=t||""}function re(e,t){e instanceof HTMLSelectElement?te(e)?function(e,t){t||(t=[]);for(let n=0;n{ge&&function(e,t){if(0!==e.button||function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e))return;if(e.defaultPrevented)return;const n=function(e){const t=!window._blazorDisableComposedPath&&e.composedPath&&e.composedPath();if(t){for(let e=0;edocument.baseURI,getLocationHref:()=>location.href,scrollToElement:ke};function ke(e){const t=document.getElementById(e);return!!t&&(t.scrollIntoView(),!0)}function Fe(e,t,n=!1){const r=be(e);!t.forceLoad&&ye(r)?Te(r,!1,t.replaceHistoryEntry,t.historyEntryState,n):function(e,t){if(location.href===e){const t=e+"?";history.replaceState(null,"",t),location.replace(e)}else t?location.replace(e):location.href=e}(e,t.replaceHistoryEntry)}async function Te(e,t,n,r=void 0,o=!1){if(xe(),function(e){const t=e.indexOf("#");return t>-1&&location.href.replace(location.hash,"")===e.substring(0,t)}(e))!function(e,t,n){Oe(e,t,n);const r=e.indexOf("#");r!==e.length-1&&ke(e.substring(r+1))}(e,n,r);else{if(!o&&Ie&&!await Le(e,r,t))return;pe=!0,Oe(e,n,r),await Pe(t)}}function Oe(e,t,n=void 0){t?history.replaceState({userState:n,_index:Se},"",e):(Se++,history.pushState({userState:n,_index:Se},"",e))}function Me(e){return new Promise((t=>{const n=_e;_e=()=>{_e=n,t()},history.go(e)}))}function xe(){De&&(De(!1),De=null)}function Le(e,t,n){return new Promise((r=>{xe(),Ne?(Ce++,De=r,Ne(Ce,e,t,n)):r(!1)}))}async function Pe(e){var t;Ae&&await Ae(location.href,null===(t=history.state)||void 0===t?void 0:t.userState,e)}async function Be(e){var t,n;_e&&await _e(e),Se=null!==(n=null===(t=history.state)||void 0===t?void 0:t._index)&&void 0!==n?n:0}const Je={focus:function(e,t){if(e instanceof HTMLElement)e.focus({preventScroll:t});else{if(!(e instanceof SVGElement))throw new Error("Unable to focus an invalid element.");if(!e.hasAttribute("tabindex"))throw new Error("Unable to focus an SVG element that does not have a tabindex.");e.focus({preventScroll:t})}},focusBySelector:function(e,t){const n=document.querySelector(e);n&&(n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus({preventScroll:!0}))}},je={init:function(e,t,n,r=50){const o=$e(t);(o||document.documentElement).style.overflowAnchor="none";const i=document.createRange();d(n.parentElement)&&(t.style.display="table-row",n.style.display="table-row");const s=new IntersectionObserver((function(r){r.forEach((r=>{var o;if(!r.isIntersecting)return;i.setStartAfter(t),i.setEndBefore(n);const s=i.getBoundingClientRect().height,a=null===(o=r.rootBounds)||void 0===o?void 0:o.height;r.target===t?e.invokeMethodAsync("OnSpacerBeforeVisible",r.intersectionRect.top-r.boundingClientRect.top,s,a):r.target===n&&n.offsetHeight>0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,s,a)}))}),{root:o,rootMargin:`${r}px`});s.observe(t),s.observe(n);const a=l(t),c=l(n);function l(e){const t={attributes:!0},n=new MutationObserver(((n,r)=>{d(e.parentElement)&&(r.disconnect(),e.style.display="table-row",r.observe(e,t)),s.unobserve(e),s.observe(e)}));return n.observe(e,t),n}function d(e){return null!==e&&(e instanceof HTMLTableElement&&""===e.style.display||"table"===e.style.display||e instanceof HTMLTableSectionElement&&""===e.style.display||"table-row-group"===e.style.display)}He[e._id]={intersectionObserver:s,mutationObserverBefore:a,mutationObserverAfter:c}},dispose:function(e){const t=He[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete He[e._id])}},He={};function $e(e){return e&&e!==document.body&&e!==document.documentElement?"visible"!==getComputedStyle(e).overflowY?e:$e(e.parentElement):null}const Ue={getAndRemoveExistingTitle:function(){var e;const t=document.head?document.head.getElementsByTagName("title"):[];if(0===t.length)return null;let n=null;for(let r=t.length-1;r>=0;r--){const o=t[r],i=o.previousSibling;i instanceof Comment&&null!==U(i)||(null===n&&(n=o.textContent),null===(e=o.parentNode)||void 0===e||e.removeChild(o))}return n}},ze={init:function(e,t){t._blazorInputFileNextFileId=0,t.addEventListener("click",(function(){t.value=""})),t.addEventListener("change",(function(){t._blazorFilesById={};const n=Array.prototype.map.call(t.files,(function(e){const n={id:++t._blazorInputFileNextFileId,lastModified:new Date(e.lastModified).toISOString(),name:e.name,size:e.size,contentType:e.type,readPromise:void 0,arrayBuffer:void 0,blob:e};return t._blazorFilesById[n.id]=n,n}));e.invokeMethodAsync("NotifyChange",n)}))},toImageFile:async function(e,t,n,r,o){const i=We(e,t),s=await new Promise((function(e){const t=new Image;t.onload=function(){URL.revokeObjectURL(t.src),e(t)},t.onerror=function(){t.onerror=null,URL.revokeObjectURL(t.src)},t.src=URL.createObjectURL(i.blob)})),a=await new Promise((function(e){var t;const i=Math.min(1,r/s.width),a=Math.min(1,o/s.height),c=Math.min(i,a),l=document.createElement("canvas");l.width=Math.round(s.width*c),l.height=Math.round(s.height*c),null===(t=l.getContext("2d"))||void 0===t||t.drawImage(s,0,0,l.width,l.height),l.toBlob(e,n)})),c={id:++e._blazorInputFileNextFileId,lastModified:i.lastModified,name:i.name,size:(null==a?void 0:a.size)||0,contentType:n,blob:a||i.blob};return e._blazorFilesById[c.id]=c,c},readFileData:async function(e,t){return We(e,t).blob}};function We(e,t){const n=e._blazorFilesById[t];if(!n)throw new Error(`There is no file with ID ${t}. The file list may have changed. See https://aka.ms/aspnet/blazor-input-file-multiple-selections.`);return n}const Ke=new Set,Ve={enableNavigationPrompt:function(e){0===Ke.size&&window.addEventListener("beforeunload",qe),Ke.add(e)},disableNavigationPrompt:function(e){Ke.delete(e),0===Ke.size&&window.removeEventListener("beforeunload",qe)}};function qe(e){e.preventDefault(),e.returnValue=!0}const Xe=new Map,Ye={navigateTo:function(e,t,n=!1){Fe(e,t instanceof Object?t:{forceLoad:t,replaceHistoryEntry:n})},registerCustomEventType:function(e,t){if(!t)throw new Error("The options parameter is required.");if(o.has(e))throw new Error(`The event '${e}' is already registered.`);if(t.browserEventName){const n=i.get(t.browserEventName);n?n.push(e):i.set(t.browserEventName,[e]),s.forEach((n=>n(e,t.browserEventName)))}o.set(e,t)},rootComponents:g,_internal:{navigationManager:Re,domWrapper:Je,Virtualize:je,PageTitle:Ue,InputFile:ze,NavigationLock:Ve,getJSDataStreamChunk:async function(e,t,n){return e instanceof Blob?await async function(e,t,n){const r=e.slice(t,t+n),o=await r.arrayBuffer();return new Uint8Array(o)}(e,t,n):function(e,t,n){return new Uint8Array(e.buffer,e.byteOffset+t,n)}(e,t,n)},attachWebRendererInterop:function(t,n,r,o){if(E.has(t))throw new Error(`Interop methods are already registered for renderer ${t}`);E.set(t,n),Object.keys(r).length>0&&function(t,n,r){if(p)throw new Error("Dynamic root components have already been enabled.");p=t,h=n;for(const[t,o]of Object.entries(r)){const r=e.findJSFunction(t,0);for(const e of o)r(e,n[e])}}(N(t),r,o),C(),function(e){const t=I.get(e);t&&(I.delete(e),S.delete(e),t())}(t)}}};var Ge,Ze;window.Blazor=Ye;const Qe=navigator,et=Qe.userAgentData&&Qe.userAgentData.brands,tt=et&&et.length>0?et.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):window.chrome,nt=null!==(Ze=null===(Ge=Qe.userAgentData)||void 0===Ge?void 0:Ge.platform)&&void 0!==Ze?Ze:navigator.platform;function rt(e){return 0!==e.debugLevel&&(tt||navigator.userAgent.includes("Firefox"))}let ot,it,st,at,ct,lt,dt=!1;function ut(){const e=document.querySelector("#blazor-error-ui");e&&(e.style.display="block"),dt||(dt=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((e=>{e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((e=>{e.onclick=function(e){const t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}})))}const ft=Math.pow(2,32),mt=Math.pow(2,21)-1;let pt=null;function ht(e){return it.getI32(e)}const vt={load:function(e){return async function(e){const{dotnet:t}=await async function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");let t="_framework/dotnet.js";if(e.loadBootResource){const n="dotnetjs",r=e.loadBootResource(n,"dotnet.js",t,"");if("string"==typeof r)t=r;else if(r)throw new Error(`For a ${n} resource, custom loaders must supply a URI string.`)}const n=new URL(t,document.baseURI).toString();return await import(n)}(e),n=function(e){const t={maxParallelDownloads:1e6,enableDownloadRetry:!1,applicationEnvironment:e.environment},n={...window.Module||{},onConfigLoaded:async(t,{invokeLibraryInitializers:n})=>{var r,o;t.environmentVariables||(t.environmentVariables={}),"sharded"===t.globalizationMode&&(t.environmentVariables.__BLAZOR_SHARDED_ICU="1"),Ye._internal.getApplicationEnvironment=()=>t.applicationEnvironment;const i=[e,null!==(o=null===(r=t.resources)||void 0===r?void 0:r.extensions)&&void 0!==o?o:{}];await n("beforeStart",i)},onDownloadResourceProgress:gt,config:t,disableDotnet6Compatibility:!1,out:bt,err:wt};return n}(e);t.withStartupOptions(e).withModuleConfig(n),lt=await t.create()}(e)},start:function(){return async function(){if(!lt)throw new Error("The runtime must be loaded it gets configured.");const{MONO:t,BINDING:n,Module:r,setModuleImports:o,INTERNAL:i,getConfig:s,invokeLibraryInitializers:a}=lt;st=r,ot=n,it=t,ct=i,function(e){const t=nt.match(/^Mac/i)?"Cmd":"Alt";rt(e)&&console.info(`Debugging hotkey: Shift+${t}+D (when application has focus)`),document.addEventListener("keydown",(t=>{t.shiftKey&&(t.metaKey||t.altKey)&&"KeyD"===t.code&&(rt(e)?navigator.userAgent.includes("Firefox")?async function(){const e=await fetch(`_framework/debug?url=${encodeURIComponent(location.href)}&isFirefox=true`);200!==e.status&&console.warn(await e.text())}():tt?function(){const e=document.createElement("a");e.href=`_framework/debug?url=${encodeURIComponent(location.href)}`,e.target="_blank",e.rel="noopener noreferrer",e.click()}():console.error("Currently, only Microsoft Edge (80+), Google Chrome, or Chromium, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}(s()),Ye._internal.dotNetCriticalError=wt,o("blazor-internal",{Blazor:{_internal:Ye._internal}});const c=await lt.getAssemblyExports("Microsoft.AspNetCore.Components.WebAssembly");return Object.assign(Ye._internal,{dotNetExports:{...c.Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime}}),at=e.attachDispatcher({beginInvokeDotNetFromJS:(e,t,n,r,o)=>{if(It(),!r&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");const i=r?r.toString():t;Ye._internal.dotNetExports.BeginInvokeDotNet(e?e.toString():null,i,n,o)},endInvokeJSFromDotNet:(e,t,n)=>{Ye._internal.dotNetExports.EndInvokeJS(n)},sendByteArray:(e,t)=>{Ye._internal.dotNetExports.ReceiveByteArrayFromJS(e,t)},invokeDotNetFromJS:(e,t,n,r)=>(It(),Ye._internal.dotNetExports.InvokeDotNet(e||null,t,null!=n?n:0,r))}),{invokeLibraryInitializers:a}}()},callEntryPoint:async function(){try{await lt.runMain(lt.getConfig().mainAssemblyName,[])}catch(e){console.error(e),ut()}},toUint8Array:function(e){const t=Et(e),n=ht(t),r=new Uint8Array(n);return r.set(st.HEAPU8.subarray(t+4,t+4+n)),r},getArrayLength:function(e){return ht(Et(e))},getArrayEntryPtr:function(e,t,n){return Et(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),it.getI16(n);var n},readInt32Field:function(e,t){return ht(e+(t||0))},readUint64Field:function(e,t){return function(e){const t=e>>2,n=st.HEAPU32[t+1];if(n>mt)throw new Error(`Cannot read uint64 with high order part ${n}, because the result would exceed Number.MAX_SAFE_INTEGER.`);return n*ft+st.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),it.getF32(n);var n},readObjectField:function(e,t){return ht(e+(t||0))},readStringField:function(e,t,n){const r=ht(e+(t||0));if(0===r)return null;if(n){const e=ot.unbox_mono_obj(r);return"boolean"==typeof e?e?"":null:e}return ot.conv_string(r)},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return It(),pt=St.create(),pt},invokeWhenHeapUnlocked:function(e){pt?pt.enqueuePostReleaseAction(e):e()}};function gt(e,t){const n=e/t*100;document.documentElement.style.setProperty("--blazor-load-percentage",`${n}%`),document.documentElement.style.setProperty("--blazor-load-percentage-text",`"${Math.floor(n)}%"`)}const yt=["DEBUGGING ENABLED"],bt=e=>yt.indexOf(e)<0&&console.log(e),wt=e=>{console.error(e||"(null)"),ut()};function Et(e){return e+12}function It(){if(pt)throw new Error("Assertion failed - heap is currently locked")}class St{enqueuePostReleaseAction(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)}release(){var e;if(pt!==this)throw new Error("Trying to release a lock which isn't current");for(ct.mono_wasm_gc_unlock(),pt=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;)this.postReleaseActions.shift()(),It()}static create(){return ct.mono_wasm_gc_lock(),new St}}let Ct;class At{constructor(e){this.batchAddress=e,this.arrayRangeReader=Nt,this.arrayBuilderSegmentReader=_t,this.diffReader=Dt,this.editReader=Rt,this.frameReader=kt}updatedComponents(){return Ct.readStructField(this.batchAddress,0)}referenceFrames(){return Ct.readStructField(this.batchAddress,Nt.structLength)}disposedComponentIds(){return Ct.readStructField(this.batchAddress,2*Nt.structLength)}disposedEventHandlerIds(){return Ct.readStructField(this.batchAddress,3*Nt.structLength)}updatedComponentsEntry(e,t){return Ft(e,t,Dt.structLength)}referenceFramesEntry(e,t){return Ft(e,t,kt.structLength)}disposedComponentIdsEntry(e,t){const n=Ft(e,t,4);return Ct.readInt32Field(n)}disposedEventHandlerIdsEntry(e,t){const n=Ft(e,t,8);return Ct.readUint64Field(n)}}const Nt={structLength:8,values:e=>Ct.readObjectField(e,0),count:e=>Ct.readInt32Field(e,4)},_t={structLength:12,values:e=>{const t=Ct.readObjectField(e,0),n=Ct.getObjectFieldsBaseAddress(t);return Ct.readObjectField(n,0)},offset:e=>Ct.readInt32Field(e,4),count:e=>Ct.readInt32Field(e,8)},Dt={structLength:4+_t.structLength,componentId:e=>Ct.readInt32Field(e,0),edits:e=>Ct.readStructField(e,4),editsEntry:(e,t)=>Ft(e,t,Rt.structLength)},Rt={structLength:20,editType:e=>Ct.readInt32Field(e,0),siblingIndex:e=>Ct.readInt32Field(e,4),newTreeIndex:e=>Ct.readInt32Field(e,8),moveToSiblingIndex:e=>Ct.readInt32Field(e,8),removedAttributeName:e=>Ct.readStringField(e,16)},kt={structLength:36,frameType:e=>Ct.readInt16Field(e,4),subtreeLength:e=>Ct.readInt32Field(e,8),elementReferenceCaptureId:e=>Ct.readStringField(e,16),componentId:e=>Ct.readInt32Field(e,12),elementName:e=>Ct.readStringField(e,16),textContent:e=>Ct.readStringField(e,16),markupContent:e=>Ct.readStringField(e,16),attributeName:e=>Ct.readStringField(e,16),attributeValue:e=>Ct.readStringField(e,24,!0),attributeEventHandlerId:e=>Ct.readUint64Field(e,8)};function Ft(e,t,n){return Ct.getArrayEntryPtr(e,t,n)}const Tt=/^\s*Blazor-Component-State:(?[a-zA-Z0-9+/=]+)$/;function Ot(e){var t;if(e.nodeType===Node.COMMENT_NODE){const n=e.textContent||"",r=Tt.exec(n),o=r&&r.groups&&r.groups.state;return o&&(null===(t=e.parentNode)||void 0===t||t.removeChild(e)),o}if(!e.hasChildNodes())return;const n=e.childNodes;for(let e=0;e.*)$/);function Lt(e,t){const n=e.currentElement;var r,o,i;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){const s=xt.exec(n.textContent),a=s&&s.groups&&s.groups.descriptor;if(!a)return;!function(e){if(e.parentNode instanceof Document)throw new Error("Root components cannot be marked as interactive. The element must be rendered statically so that scripts are not evaluated multiple times.")}(n);try{const s=function(e){const t=JSON.parse(e),{type:n}=t;if("server"!==n&&"webassembly"!==n&&"auto"!==n)throw new Error(`Invalid component type '${n}'.`);return t}(a),c=function(e,t,n){const{prerenderId:r}=e;if(r){for(;n.next()&&n.currentElement;){const e=n.currentElement;if(e.nodeType!==Node.COMMENT_NODE)continue;if(!e.textContent)continue;const t=xt.exec(e.textContent),o=t&&t[1];if(o)return Ht(o,r),e}throw new Error(`Could not find an end component comment for '${t}'.`)}}(s,n,e);if(t!==s.type)return;switch(s.type){case"webassembly":return o=n,i=c,jt(r=s),{...r,uniqueId:Pt++,id:Bt++,start:o,end:i};case"server":return function(e,t,n){return Jt(e),{...e,uniqueId:Pt++,start:t,end:n}}(s,n,c);case"auto":return function(e,t,n){return Jt(e),jt(e),{...e,uniqueId:Pt++,start:t,end:n}}(s,n,c)}}catch(e){throw new Error(`Found malformed component comment at ${n.textContent}`)}}}let Pt=0,Bt=0;function Jt(e){const{descriptor:t,sequence:n}=e;if(!t)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===n)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(n))throw new Error(`Error parsing the sequence '${n}' for component '${JSON.stringify(e)}'`)}function jt(e){const{assembly:t,typeName:n}=e;if(!t)throw new Error("assembly must be defined when using a descriptor.");if(!n)throw new Error("typeName must be defined when using a descriptor.");e.parameterDefinitions=e.parameterDefinitions&&atob(e.parameterDefinitions),e.parameterValues=e.parameterValues&&atob(e.parameterValues)}function Ht(e,t){const n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error(`Invalid end of component comment: '${e}'`);const 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}'`)}class $t{constructor(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}next(){return this.currentIndex++,this.currentIndex{throw new Error("No auto mode resolver has been attached")})():e.type){case"server":return zt.Server;case"webassembly":return zt.WebAssembly;case null:return null}}determinePendingOperation(e,t,n){if(function(e){return document.contains(e.start)}(e)){if(void 0===t.assignedRendererId){if(!n)return null;const o=this.getRendererIdForDescriptor(e);return null===o?null:(r=o,E.has(r)?(t.assignedRendererId=o,t.uniqueIdAtLastUpdate=e.uniqueId,this._descriptorsPendingInteractivityById[e.uniqueId]=e,{type:"add",selectorId:e.uniqueId,marker:Ut(e)}):null)}if(t.uniqueIdAtLastUpdate===e.uniqueId)return null;if(void 0!==t.interactiveComponentId)return t.uniqueIdAtLastUpdate=e.uniqueId,{type:"update",componentId:t.interactiveComponentId,marker:Ut(e)}}else if(this.unregisterComponentDescriptor(e),void 0!==t.interactiveComponentId)return{type:"remove",componentId:t.interactiveComponentId};var r;return null}resolveRootComponent(e,t){const n=this._descriptorsPendingInteractivityById[e];if(!n)throw new Error(`Could not resolve a root component for descriptor with ID '${e}'.`);const r=this.getRootComponentInfo(n);if(void 0!==r.interactiveComponentId)throw new Error("Cannot resolve a root component for the same descriptor multiple times.");return r.interactiveComponentId=t,this.handleUpdatedRootComponentsCore([n],!1),n}getRootComponentInfo(e){let t=this._rootComponentInfoByDescriptor.get(e);return t||(t={},this._rootComponentInfoByDescriptor.set(e,t)),t}}class qt{constructor(e){if(this.componentsById={},e instanceof Vt)this.preregisteredComponents=[],this.rootComponentManager=e;else{this.preregisteredComponents=e;for(let t=0;t{}));const t=Gt();!function(e){const t=_;_=(e,n,r)=>{((e,t,n)=>{const r=function(e){return me[e]}(e);r.eventDelegator.getHandler(t)&&vt.invokeWhenHeapUnlocked(n)})(e,n,(()=>t(e,n,r)))}}(),Ye._internal.applyHotReload=(e,t,n,r)=>{at.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","ApplyHotReloadDelta",e,t,n,r)},Ye._internal.getApplyUpdateCapabilities=()=>at.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","GetApplyUpdateCapabilities"),Ye._internal.invokeJSFromDotNet=Zt,Ye._internal.invokeJSJson=Qt,Ye._internal.endInvokeDotNetFromJS=en,Ye._internal.receiveWebAssemblyDotNetDataStream=tn,Ye._internal.receiveByteArray=nn;const n=(Ct=vt,Ct);Ye.platform=n,Ye._internal.renderBatch=(e,t)=>{const n=vt.beginHeapLock();try{!function(e,t){const n=me[e];if(!n)throw new Error(`There is no browser renderer with ID ${e}.`);const r=t.arrayRangeReader,o=t.updatedComponents(),i=r.values(o),s=r.count(o),a=t.referenceFrames(),c=r.values(a),l=t.diffReader;for(let e=0;e{await at.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t,n)}),(async(e,t,n,r)=>{const o=await at.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChangingAsync",t,n,r);Ye._internal.navigationManager.endLocationChanging(e,o)}));const r=new qt(e||[]);let o;Ye._internal.registeredComponents={getRegisteredComponentsCount:()=>r.getCount(),getId:e=>r.getId(e),getAssembly:e=>r.getAssembly(e),getTypeName:e=>r.getTypeName(e),getParameterDefinitions:e=>r.getParameterDefinitions(e)||"",getParameterValues:e=>r.getParameterValues(e)||""},Ye._internal.getPersistedState=()=>Ot(document)||"",Ye._internal.attachRootComponentToElement=(e,t,n)=>{const o=r.resolveRegisteredElement(e,t);o?he(n,o,t,!1):function(e,t,n){const r="::before";let o=!1;if(e.endsWith("::after"))e=e.slice(0,-7),o=!0;else if(e.endsWith(r))throw new Error(`The '${r}' selector is not supported.`);const i=function(e){const t=m.get(e);if(t)return m.delete(e),t}(e)||document.querySelector(e);if(!i)throw new Error(`Could not find any element matching selector '${e}'.`);he(n||0,B(i,!0),t,o)}(e,t,n)};try{await t,o=await n.start()}catch(e){throw new Error(`Failed to start platform. Reason: ${e}`)}n.callEntryPoint(),o.invokeLibraryInitializers("afterStarted",[Ye])}function Gt(){return null!=Kt||(Kt=vt.load(null!=Wt?Wt:{})),Kt}function Zt(t,n,r,o){const i=vt.readStringField(t,0),s=vt.readInt32Field(t,4),a=vt.readStringField(t,8),c=vt.readUint64Field(t,20);if(null!==a){const e=vt.readUint64Field(t,12);if(0!==e)return at.beginInvokeJSFromDotNet(e,i,a,s,c),0;{const e=at.invokeJSFromDotNet(i,a,s,c);return null===e?0:ot.js_string_to_mono_string(e)}}{const t=e.findJSFunction(i,c).call(null,n,r,o);switch(s){case e.JSCallResultType.Default:return t;case e.JSCallResultType.JSObjectReference:return e.createJSObjectReference(t).__jsObjectId;case e.JSCallResultType.JSStreamReference:{const n=e.createJSStreamReference(t),r=JSON.stringify(n);return ot.js_string_to_mono_string(r)}case e.JSCallResultType.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${s}'.`)}}}function Qt(e,t,n,r,o){return 0!==o?(at.beginInvokeJSFromDotNet(o,e,r,n,t),null):at.invokeJSFromDotNet(e,r,n,t)}function en(e,t,n){at.endInvokeDotNetFromJS(e,t,n)}function tn(e,t,n,r){!function(e,t,n,r,o){let i=Xe.get(t);if(!i){const n=new ReadableStream({start(e){Xe.set(t,e),i=e}});e.supplyDotNetStream(t,n)}o?(i.error(o),Xe.delete(t)):0===r?(i.close(),Xe.delete(t)):i.enqueue(n.length===r?n:n.subarray(0,r))}(at,e,t,n,r)}function nn(e,t){at.receiveByteArray(e,t)}let rn=!1;async function on(e){if(rn)throw new Error("Blazor has already started.");rn=!0,Xt(e);const t=Mt(document,"webassembly").sort(((e,t)=>e.id-t.id));await Yt(t)}Ye.start=on,window.DotNet=e,document&&document.currentScript&&"false"!==document.currentScript.getAttribute("autostart")&&on().catch((e=>{void 0!==st&&st.err?st.err(e):console.error(e)}))})(); \ No newline at end of file diff --git a/_framework/blazor.webassembly.js.br b/_framework/blazor.webassembly.js.br new file mode 100644 index 0000000..866f843 Binary files /dev/null and b/_framework/blazor.webassembly.js.br differ diff --git a/_framework/blazor.webassembly.js.gz b/_framework/blazor.webassembly.js.gz new file mode 100644 index 0000000..40111b7 Binary files /dev/null and b/_framework/blazor.webassembly.js.gz differ diff --git a/_framework/dotnet.js b/_framework/dotnet.js new file mode 100755 index 0000000..dad581a --- /dev/null +++ b/_framework/dotnet.js @@ -0,0 +1,4 @@ +//! Licensed to the .NET Foundation under one or more agreements. +//! The .NET Foundation licenses this file to you under the MIT license. +const e=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),o=Symbol.for("wasm promise_control");function n(e,t){let n=null;const r=new Promise((function(o,r){n={isDone:!1,promise:null,resolve:t=>{n.isDone||(n.isDone=!0,o(t),e&&e())},reject:e=>{n.isDone||(n.isDone=!0,r(e),t&&t())}}}));n.promise=r;const s=r;return s[o]=n,{promise:s,promise_control:n}}function r(e){return e[o]}function s(e){(function(e){return void 0!==e[o]})(e)||De(!1,"Promise is not controllable")}const i="MONO_WASM: ";function a(e,...t){Re.diagnosticTracing&&console.debug(i+e,...t)}function l(e,...t){console.info(e,...t)}function c(e,...t){console.warn(i+e,...t)}function u(e,...t){t&&t.length>0&&t[0]&&"object"==typeof t[0]&&t[0].silent||console.error(i+e,...t)}let d;function f(e,t,o){const n={log:t.log,error:t.error},r=t;function s(t,o,r){return function(...s){try{let n=s[0];if(void 0===n)n="undefined";else if(null===n)n="null";else if("function"==typeof n)n=n.toString();else if("string"!=typeof n)try{n=JSON.stringify(n)}catch(e){n=n.toString()}if("string"==typeof n)if("["==n[0]){const t=(new Date).toISOString();n="main"!==e?`[${e}][${t}] ${n}`:`[${t}] ${n}`}else"main"!==e&&(n=`[${e}] ${n}`);o(r?JSON.stringify({method:t,payload:n,arguments:s}):[t+n,...s.slice(1)])}catch(e){n.error(`proxyConsole failed: ${e}`)}}}const i=["debug","trace","warn","info","error"];for(const e of i)"function"!=typeof r[e]&&(r[e]=s(`console.${e}: `,t.log,!1));const a=`${o}/console`.replace("https://","wss://").replace("http://","ws://");d=new WebSocket(a),d.addEventListener("open",(()=>{n.log(`browser: [${e}] Console websocket connected.`)})),d.addEventListener("error",(t=>{n.error(`[${e}] websocket error: ${t}`,t)})),d.addEventListener("close",(t=>{n.error(`[${e}] websocket closed: ${t}`,t)}));const l=e=>{d.readyState===WebSocket.OPEN?d.send(e):n.log(e)};for(const e of["log",...i])r[e]=s(`console.${e}`,l,!0)}const m={},h={},g={};let p,b,w;function y(){const e=Object.values(g),t=Object.values(h),o=E(e),n=E(t),r=o+n;if(0===r)return;const s=ve?"%c":"",i=ve?["background: purple; color: white; padding: 1px 3px; border-radius: 3px;","font-weight: bold;","font-weight: normal;"]:[],a=Re.config.linkerEnabled?"":"\nThis application was built with linking (tree shaking) disabled. \nPublished applications will be significantly smaller if you install wasm-tools workload. \nSee also https://aka.ms/dotnet-wasm-features";console.groupCollapsed(`${s}dotnet${s} Loaded ${R(r)} resources${s}${a}`,...i),e.length&&(console.groupCollapsed(`Loaded ${R(o)} resources from cache`),console.table(g),console.groupEnd()),t.length&&(console.groupCollapsed(`Loaded ${R(n)} resources from network`),console.table(h),console.groupEnd()),console.groupEnd()}async function v(){const e=p;if(e){const t=(await e.keys()).map((async t=>{t.url in m||await e.delete(t)}));await Promise.all(t)}}function _(e){return`${e.resolvedUrl}.${e.hash}`}function E(e){return e.reduce(((e,t)=>e+(t.responseBytes||0)),0)}function R(e){return`${(e/1048576).toFixed(2)} MB`}function j(e){var t;if((null===(t=e.resources)||void 0===t?void 0:t.icu)&&"invariant"!=e.globalizationMode){const t=e.applicationCulture||(ve?navigator.languages&&navigator.languages[0]:Intl.DateTimeFormat().resolvedOptions().locale),o=Object.keys(e.resources.icu);let n=null;if("custom"===e.globalizationMode?1===o.length&&(n=o[0]):"hybrid"===e.globalizationMode?n="icudt_hybrid.dat":t&&"all"!==e.globalizationMode?"sharded"===e.globalizationMode&&(n=function(e){const t=e.split("-")[0];return"en"===t||["fr","fr-FR","it","it-IT","de","de-DE","es","es-ES"].includes(e)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(t)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(t)):n="icudt.dat",n&&o.includes(n))return n}return e.globalizationMode="invariant",null}const x=class{constructor(e){this.url=e}toString(){return this.url}};async function S(e,t){try{const o="function"==typeof globalThis.fetch;if(we){const n=e.startsWith("file://");if(!n&&o)return globalThis.fetch(e,t||{credentials:"same-origin"});b||(w=xe.require("url"),b=xe.require("fs")),n&&(e=w.fileURLToPath(e));const r=await b.promises.readFile(e);return{ok:!0,headers:{length:0,get:()=>null},url:e,arrayBuffer:()=>r,json:()=>JSON.parse(r),text:()=>{throw new Error("NotImplementedException")}}}if(o)return globalThis.fetch(e,t||{credentials:"same-origin"});if("function"==typeof read)return{ok:!0,url:e,headers:{length:0,get:()=>null},arrayBuffer:()=>new Uint8Array(read(e,"binary")),json:()=>JSON.parse(read(e,"utf8")),text:()=>read(e,"utf8")}}catch(t){return{ok:!1,url:e,status:500,headers:{length:0,get:()=>null},statusText:"ERR28: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t},text:()=>{throw t}}}throw new Error("No fetch implementation available")}function A(e){return"string"!=typeof e&&De(!1,"url must be a string"),!T(e)&&0!==e.indexOf("./")&&0!==e.indexOf("../")&&globalThis.URL&&globalThis.document&&globalThis.document.baseURI&&(e=new URL(e,globalThis.document.baseURI).toString()),e}const D=/^[a-zA-Z][a-zA-Z\d+\-.]*?:\/\//,C=/[a-zA-Z]:[\\/]/;function T(e){return we||_e?e.startsWith("/")||e.startsWith("\\")||-1!==e.indexOf("///")||C.test(e):D.test(e)}let O,k=0;const M=[],$=[],L=new Map,I={"js-module-threads":!0,"js-module-runtime":!0,"js-module-dotnet":!0,"js-module-native":!0},U={...I,"js-module-library-initializer":!0},N={...I,dotnetwasm:!0,heap:!0,manifest:!0},P={...U,manifest:!0},z={...U,dotnetwasm:!0},F={dotnetwasm:!0,symbols:!0},W={resource:!0,assembly:!0,pdb:!0,heap:!0,icu:!0},B={...U,dotnetwasm:!0,symbols:!0};function V(e){return!("icu"==e.behavior&&e.name!=Re.preferredIcuAsset)}function q(e,t,o){const n=Object.keys(t||{});De(1==n.length,`Expect to have one ${o} asset in resources`);const r=n[0],s={name:r,hash:t[r],behavior:o};return J(s),e.push(s),s}function J(e){N[e.behavior]&&L.set(e.behavior,e)}function H(e){const t=function(e){De(N[e],`Unknown single asset behavior ${e}`);const t=L.get(e);return De(t,`Single asset for ${e} not found`),t}(e);if(t.resolvedUrl=Re.locateFile(t.name),I[t.behavior]){const e=re(t);e?("string"!=typeof e&&De(!1,"loadBootResource response for 'dotnetjs' type should be a URL string"),t.resolvedUrl=e):t.resolvedUrl=X(t.resolvedUrl,t.behavior)}else if("dotnetwasm"!==t.behavior)throw new Error(`Unknown single asset behavior ${e}`);return t}async function Q(){a("mono_download_assets"),Re.maxParallelDownloads=Re.config.maxParallelDownloads||Re.maxParallelDownloads,Re.enableDownloadRetry=Re.config.enableDownloadRetry||Re.enableDownloadRetry;try{const e=[],t=t=>{!B[t.behavior]&&V(t)&&Re.expected_instantiated_assets_count++,!z[t.behavior]&&V(t)&&(Re.expected_downloaded_assets_count++,e.push(G(t)))};for(const e of $)t(e);await Re.memorySnapshotSkippedOrDone.promise;for(const e of M)if(Ee.loadedMemorySnapshotSize){if(se(e),"resource"==e.behavior||"assembly"==e.behavior||"pdb"==e.behavior){const t=K(e,""),o="string"==typeof e.virtualPath?e.virtualPath:e.name;Re._loaded_files.push({url:t,file:o})}}else t(e);Re.allDownloadsQueued.promise_control.resolve(),await Re.runtimeModuleLoaded.promise;const o=[];for(const t of e)o.push((async()=>{const e=await t;if(e.buffer){if(!B[e.behavior]){e.buffer&&"object"==typeof e.buffer||De(!1,"asset buffer must be array-like or buffer-like or promise of these"),"string"!=typeof e.resolvedUrl&&De(!1,"resolvedUrl must be string");const t=e.resolvedUrl,o=await e.buffer,n=new Uint8Array(o);se(e),await Ee.beforeOnRuntimeInitialized.promise,Ee.instantiate_asset(e,t,n)}}else F[e.behavior]?("symbols"===e.behavior&&(await Ee.instantiate_symbols_asset(e),se(e)),F[e.behavior]&&++Re.actual_downloaded_assets_count):(e.isOptional||De(!1,"Expected asset to have the downloaded buffer"),!z[e.behavior]&&V(e)&&Re.expected_downloaded_assets_count--,!B[e.behavior]&&V(e)&&Re.expected_instantiated_assets_count--)})());Promise.all(o).then((()=>{Ee.allAssetsInMemory.promise_control.resolve()})).catch((e=>{throw Re.err("Error in mono_download_assets: "+e),ke(1,e),e}))}catch(e){throw Re.err("Error in mono_download_assets: "+e),e}}async function Z(e){const t=await G(e);return await t.pendingDownloadInternal.response,t.buffer}async function G(e){try{return await Y(e)}catch(t){if(!Re.enableDownloadRetry)throw t;if(_e||we)throw t;if(e.pendingDownload&&e.pendingDownloadInternal==e.pendingDownload)throw t;if(e.resolvedUrl&&-1!=e.resolvedUrl.indexOf("file://"))throw t;if(t&&404==t.status)throw t;e.pendingDownloadInternal=void 0,await Re.allDownloadsQueued.promise;try{return a(`Retrying download '${e.name}'`),await Y(e)}catch(t){return e.pendingDownloadInternal=void 0,await(100,new Promise((e=>globalThis.setTimeout(e,100)))),a(`Retrying download (2) '${e.name}' after delay`),await Y(e)}}}async function Y(e){for(;O;)await O.promise;try{++k,k==Re.maxParallelDownloads&&(a("Throttling further parallel downloads"),O=n());const t=await async function(e){if(e.pendingDownload&&(e.pendingDownloadInternal=e.pendingDownload),e.pendingDownloadInternal&&e.pendingDownloadInternal.response)return e.pendingDownloadInternal.response;if(e.buffer){const t=await e.buffer;return e.resolvedUrl||(e.resolvedUrl="undefined://"+e.name),e.pendingDownloadInternal={url:e.resolvedUrl,name:e.name,response:Promise.resolve({ok:!0,arrayBuffer:()=>t,json:()=>JSON.parse(new TextDecoder("utf-8").decode(t)),text:()=>{throw new Error("NotImplementedException")},headers:{get:()=>{}}})},e.pendingDownloadInternal.response}const t=e.loadRemote&&Re.config.remoteSources?Re.config.remoteSources:[""];let o;for(let n of t){n=n.trim(),"./"===n&&(n="");const t=K(e,n);e.name===t?a(`Attempting to download '${t}'`):a(`Attempting to download '${t}' for ${e.name}`);try{e.resolvedUrl=t;const n=oe(e);if(e.pendingDownloadInternal=n,o=await n.response,!o||!o.ok)continue;return o}catch(e){o||(o={ok:!1,url:t,status:0,statusText:""+e});continue}}const n=e.isOptional||e.name.match(/\.pdb$/)&&Re.config.ignorePdbLoadErrors;if(o||De(!1,`Response undefined ${e.name}`),!n){const t=new Error(`download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`);throw t.status=o.status,t}Re.out(`optional download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`)}(e);return t?(F[e.behavior]||(e.buffer=await t.arrayBuffer(),++Re.actual_downloaded_assets_count),e):e}finally{if(--k,O&&k==Re.maxParallelDownloads-1){a("Resuming more parallel downloads");const e=O;O=void 0,e.promise_control.resolve()}}}function K(e,t){let o;return null==t&&De(!1,`sourcePrefix must be provided for ${e.name}`),e.resolvedUrl?o=e.resolvedUrl:(o=""===t?"assembly"===e.behavior||"pdb"===e.behavior?e.name:"resource"===e.behavior&&e.culture&&""!==e.culture?`${e.culture}/${e.name}`:e.name:t+e.name,o=X(Re.locateFile(o),e.behavior)),o&&"string"==typeof o||De(!1,"attemptUrl need to be path or url string"),o}function X(e,t){return Re.modulesUniqueQuery&&P[t]&&(e+=Re.modulesUniqueQuery),e}let ee=0;const te=new Set;function oe(e){try{e.resolvedUrl||De(!1,"Request's resolvedUrl must be set");const t=async function(e){let t=await async function(e){const t=p;if(!t||e.noCache||!e.hash||0===e.hash.length)return;const o=_(e);let n;m[o]=!0;try{n=await t.match(o)}catch(e){}if(!n)return;const r=parseInt(n.headers.get("content-length")||"0");return g[e.name]={responseBytes:r},n}(e);return t||(t=await function(e){let t=e.resolvedUrl;if(Re.loadBootResource){const o=re(e);if(o instanceof Promise)return o;"string"==typeof o&&(t=o)}const o={};return Re.config.disableNoCacheFetch||(o.cache="no-cache"),e.useCredentials?o.credentials="include":!Re.config.disableIntegrityCheck&&e.hash&&(o.integrity=e.hash),Re.fetch_like(t,o)}(e),function(e,t){const o=p;if(!o||e.noCache||!e.hash||0===e.hash.length)return;const n=t.clone();setTimeout((()=>{const t=_(e);!async function(e,t,o,n){const r=await n.arrayBuffer(),s=function(e){if("undefined"!=typeof performance)return performance.getEntriesByName(e)[0]}(n.url),i=s&&s.encodedBodySize||void 0;h[t]={responseBytes:i};const a=new Response(r,{headers:{"content-type":n.headers.get("content-type")||"","content-length":(i||n.headers.get("content-length")||"").toString()}});try{await e.put(o,a)}catch(e){}}(o,e.name,t,n)}),0)}(e,t)),t}(e),o={name:e.name,url:e.resolvedUrl,response:t};return te.add(e.name),o.response.then((()=>{"assembly"==e.behavior&&Re.loadedAssemblies.push(e.resolvedUrl),ee++,Re.onDownloadResourceProgress&&Re.onDownloadResourceProgress(ee,te.size)})),o}catch(t){const o={ok:!1,url:e.resolvedUrl,status:500,statusText:"ERR29: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t}};return{name:e.name,url:e.resolvedUrl,response:Promise.resolve(o)}}}const ne={resource:"assembly",assembly:"assembly",pdb:"pdb",icu:"globalization",vfs:"configuration",manifest:"manifest",dotnetwasm:"dotnetwasm","js-module-dotnet":"dotnetjs","js-module-native":"dotnetjs","js-module-runtime":"dotnetjs","js-module-threads":"dotnetjs"};function re(e){var t;if(Re.loadBootResource){const o=null!==(t=e.hash)&&void 0!==t?t:"",n=e.resolvedUrl,r=ne[e.behavior];if(r){const t=Re.loadBootResource(r,e.name,n,o,e.behavior);return"string"==typeof t?A(t):t}}}function se(e){e.pendingDownloadInternal=null,e.pendingDownload=null,e.buffer=null,e.moduleExports=null}function ie(e){let t=e.lastIndexOf("/");return t>=0&&t++,e.substring(t)}async function ae(e){if(!e)return;const t=Object.keys(e);await Promise.all(t.map((e=>async function(e){try{const t=X(Re.locateFile(e),"js-module-library-initializer");a(`Attempting to import '${t}' for ${e}`);const o=await import(t);Re.libraryInitializers.push({scriptName:e,exports:o})}catch(t){c(`Failed to import library initializer '${e}': ${t}`)}}(e))))}async function le(e,t){if(!Re.libraryInitializers)return;const o=[];for(let n=0;nr.exports[e](...t))))}await Promise.all(o)}async function ce(e,t,o){try{await o()}catch(o){throw c(`Failed to invoke '${t}' on library initializer '${e}': ${o}`),ke(1,o),o}}var ue="Release";function de(e,t){if(e===t)return e;const o={...t};return void 0!==o.assets&&o.assets!==e.assets&&(o.assets=[...e.assets||[],...o.assets||[]]),void 0!==o.resources&&(o.resources=me(e.resources||{assembly:{},jsModuleNative:{},jsModuleRuntime:{},wasmNative:{}},o.resources)),void 0!==o.environmentVariables&&(o.environmentVariables={...e.environmentVariables||{},...o.environmentVariables||{}}),void 0!==o.runtimeOptions&&o.runtimeOptions!==e.runtimeOptions&&(o.runtimeOptions=[...e.runtimeOptions||[],...o.runtimeOptions||[]]),Object.assign(e,o)}function fe(e,t){if(e===t)return e;const o={...t};return o.config&&(e.config||(e.config={}),o.config=de(e.config,o.config)),Object.assign(e,o)}function me(e,t){if(e===t)return e;const o={...t};return void 0!==o.assembly&&(o.assembly={...e.assembly||{},...o.assembly||{}}),void 0!==o.lazyAssembly&&(o.lazyAssembly={...e.lazyAssembly||{},...o.lazyAssembly||{}}),void 0!==o.pdb&&(o.pdb={...e.pdb||{},...o.pdb||{}}),void 0!==o.jsModuleWorker&&(o.jsModuleWorker={...e.jsModuleWorker||{},...o.jsModuleWorker||{}}),void 0!==o.jsModuleNative&&(o.jsModuleNative={...e.jsModuleNative||{},...o.jsModuleNative||{}}),void 0!==o.jsModuleRuntime&&(o.jsModuleRuntime={...e.jsModuleRuntime||{},...o.jsModuleRuntime||{}}),void 0!==o.wasmSymbols&&(o.wasmSymbols={...e.wasmSymbols||{},...o.wasmSymbols||{}}),void 0!==o.wasmNative&&(o.wasmNative={...e.wasmNative||{},...o.wasmNative||{}}),void 0!==o.icu&&(o.icu={...e.icu||{},...o.icu||{}}),void 0!==o.satelliteResources&&(o.satelliteResources=he(e.satelliteResources||{},o.satelliteResources||{})),void 0!==o.modulesAfterConfigLoaded&&(o.modulesAfterConfigLoaded={...e.modulesAfterConfigLoaded||{},...o.modulesAfterConfigLoaded||{}}),void 0!==o.modulesAfterRuntimeReady&&(o.modulesAfterRuntimeReady={...e.modulesAfterRuntimeReady||{},...o.modulesAfterRuntimeReady||{}}),void 0!==o.extensions&&(o.extensions={...e.extensions||{},...o.extensions||{}}),void 0!==o.vfs&&(o.vfs=he(e.vfs||{},o.vfs||{})),Object.assign(e,o)}function he(e,t){if(e===t)return e;for(const o in t)e[o]={...e[o],...t[o]};return e}function ge(){const e=Re.config;if(e.environmentVariables=e.environmentVariables||{},e.runtimeOptions=e.runtimeOptions||[],e.resources=e.resources||{assembly:{},jsModuleNative:{},jsModuleWorker:{},jsModuleRuntime:{},wasmNative:{},vfs:{},satelliteResources:{}},e.assets){a("config.assets is deprecated, use config.resources instead");for(const t of e.assets){const o={};o[t.name]=t.hash||"";const n={};switch(t.behavior){case"assembly":n.assembly=o;break;case"pdb":n.pdb=o;break;case"resource":n.satelliteResources={},n.satelliteResources[t.culture]=o;break;case"icu":n.icu=o;break;case"symbols":n.wasmSymbols=o;break;case"vfs":n.vfs={},n.vfs[t.virtualPath]=o;break;case"dotnetwasm":n.wasmNative=o;break;case"js-module-threads":n.jsModuleWorker=o;break;case"js-module-runtime":n.jsModuleRuntime=o;break;case"js-module-native":n.jsModuleNative=o;break;case"js-module-dotnet":break;default:throw new Error(`Unexpected behavior ${t.behavior} of asset ${t.name}`)}me(e.resources,n)}}Re.assertAfterExit=e.assertAfterExit=e.assertAfterExit||!ve,void 0===e.debugLevel&&"Debug"===ue&&(e.debugLevel=-1),void 0===e.cachedResourcesPurgeDelay&&(e.cachedResourcesPurgeDelay=1e4),e.debugLevel=be(e)?e.debugLevel:0,void 0===e.diagnosticTracing&&"Debug"===ue&&(e.diagnosticTracing=!0),e.applicationCulture&&(e.environmentVariables.LANG=`${e.applicationCulture}.UTF-8`),Ee.diagnosticTracing=Re.diagnosticTracing=!!e.diagnosticTracing,Ee.waitForDebugger=e.waitForDebugger,e.startupMemoryCache=!!e.startupMemoryCache,e.startupMemoryCache&&Ee.waitForDebugger&&(a("Disabling startupMemoryCache because waitForDebugger is set"),e.startupMemoryCache=!1),Ee.enablePerfMeasure=!!e.browserProfilerOptions&&globalThis.performance&&"function"==typeof globalThis.performance.measure}let pe=!1;function be(e){return!!globalThis.navigator&&((!!e.resources.pdb||0!=e.debugLevel)&&(Re.isChromium||Re.isFirefox))}const we="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ye="function"==typeof importScripts,ve="object"==typeof window||ye&&!we,_e=!ve&&!we&&!ye;let Ee={},Re={},je={},xe={},Se=!1;const Ae={mono:{},binding:{},internal:xe,module:{},loaderHelpers:Re,runtimeHelpers:Ee,api:je};function De(e,t){if(e)return;const o="Assert failed: "+("function"==typeof t?t():t),n=new Error(o);Ee.abort(n)}function Ce(){return void 0!==Re.exitCode}function Te(){return Ee.runtimeReady&&!Ce()}function Oe(){Ee.runtimeReady||De(!1,"mono runtime didn't start yet"),Re.assertAfterExit&&Ce()&&De(!1,`mono runtime already exited with ${Re.exitCode}`)}function ke(e,t){var o;const n=t&&"object"==typeof t;e=n&&"number"==typeof t.status?t.status:e;const r=n&&"string"==typeof t.message?t.message:""+t;if((t=n?t:Ee.ExitStatus?new Ee.ExitStatus(e):new Error("Exit with code "+e+" "+r)).status=e,t.message||(t.message=r),t.stack||(t.stack=(new Error).stack||""),t.silent=!0,!Ce()){try{Ee.runtimeReady||(a("abort_startup, reason: "+t),function(e){Re.allDownloadsQueued.promise_control.reject(e),Re.afterConfigLoaded.promise_control.reject(e),Re.wasmDownloadPromise.promise_control.reject(e),Re.runtimeModuleLoaded.promise_control.reject(e),Re.memorySnapshotSkippedOrDone.promise_control.reject(e),Ee.dotnetReady&&(Ee.dotnetReady.promise_control.reject(e),Ee.afterInstantiateWasm.promise_control.reject(e),Ee.beforePreInit.promise_control.reject(e),Ee.afterPreInit.promise_control.reject(e),Ee.afterPreRun.promise_control.reject(e),Ee.beforeOnRuntimeInitialized.promise_control.reject(e),Ee.afterOnRuntimeInitialized.promise_control.reject(e),Ee.afterPostRun.promise_control.reject(e))}(t)),function(e,t){if(0!==e&&t){const e=Ee.ExitStatus&&t instanceof Ee.ExitStatus?a:u;"string"==typeof t?e(t):t.stack&&t.message?Ee.stringify_as_error_with_stack?e(Ee.stringify_as_error_with_stack(t)):e(t.message+"\n"+t.stack):e(JSON.stringify(t))}if(Re.config&&Re.config.logExitCode)if(d){const t=()=>{0==d.bufferedAmount?l("WASM EXIT "+e):globalThis.setTimeout(t,100)};t()}else l("WASM EXIT "+e)}(e,t),function(e){if(ve&&Re.config&&Re.config.appendElementOnExit){const t=document.createElement("label");t.id="tests_done",e&&(t.style.background="red"),t.innerHTML=e.toString(),document.body.appendChild(t)}}(e),Ee.jiterpreter_dump_stats&&Ee.jiterpreter_dump_stats(!1),0===e&&(null===(o=Re.config)||void 0===o?void 0:o.interopCleanupOnExit)&&Ee.forceDisposeProxies(!0,!0)}catch(e){c("mono_exit failed",e)}Re.exitCode=e}if(Re.config&&Re.config.asyncFlushOnExit&&0===e)throw(async()=>{try{await async function(){try{const e=await import("process"),t=e=>new Promise(((t,o)=>{e.on("error",(e=>o(e))),e.write("",(function(){t()}))})),o=t(e.stderr),n=t(e.stdout);await Promise.all([n,o])}catch(e){u(`flushing std* streams failed: ${e}`)}}()}finally{Me(e,t)}})(),t;Me(e,t)}function Me(e,t){if(Te()&&Ee.mono_wasm_exit&&Ee.mono_wasm_exit(e),0!==e||!ve)throw we&&xe.process?xe.process.exit(e):Ee.quit&&Ee.quit(e,t),t}!function(o){if(Se)throw new Error("Loader module already loaded");Se=!0,Ee=o.runtimeHelpers,Re=o.loaderHelpers,je=o.api,xe=o.internal,Object.assign(je,{INTERNAL:xe,invokeLibraryInitializers:le}),Object.assign(o.module,{disableDotnet6Compatibility:!0,config:{environmentVariables:{}}}),Object.assign(Ee,{mono_wasm_bindings_is_ready:!1,javaScriptExports:{},config:o.module.config,diagnosticTracing:!1,abort:e=>{throw e}}),Object.assign(Re,{gitHash:"0b25e38ad32a69cd83ae246104b32449203cc71c",config:o.module.config,diagnosticTracing:!1,maxParallelDownloads:16,enableDownloadRetry:!0,assertAfterExit:!ve,_loaded_files:[],loadedFiles:[],loadedAssemblies:[],libraryInitializers:[],actual_downloaded_assets_count:0,actual_instantiated_assets_count:0,expected_downloaded_assets_count:0,expected_instantiated_assets_count:0,afterConfigLoaded:n(),allDownloadsQueued:n(),wasmDownloadPromise:n(),runtimeModuleLoaded:n(),memorySnapshotSkippedOrDone:n(),is_exited:Ce,is_runtime_running:Te,assert_runtime_running:Oe,mono_exit:ke,createPromiseController:n,getPromiseController:r,assertIsControllablePromise:s,mono_download_assets:Q,resolve_single_asset_path:H,setup_proxy_console:f,logDownloadStatsToConsole:y,purgeUnusedCacheEntriesAsync:v,hasDebuggingEnabled:be,retrieve_asset_download:Z,invokeLibraryInitializers:le,exceptions:e,simd:t})}(Ae);const $e="__mono_message_please_dont_collide__";let Le=!1;const Ie=Ae.module,Ue=Ie.config;async function Ne(e){if("function"==typeof e){const t=e(Ae.api);if(t.ready)throw new Error("Module.ready couldn't be redefined.");Object.assign(Ie,t),fe(Ie,t)}else{if("object"!=typeof e)throw new Error("Can't use moduleFactory callback of createDotnetRuntime function.");fe(Ie,e)}return await async function(e){if(we){const e=await import("process"),t=14;if(e.versions.node.split(".")[0]0&&(Re.modulesUniqueQuery=t.substring(o)),Re.scriptUrl=t.replace(/\\/g,"/").replace(/[?#].*/,""),Re.scriptDirectory=(n=Re.scriptUrl).slice(0,n.lastIndexOf("/"))+"/",Re.locateFile=e=>"URL"in globalThis&&globalThis.URL!==x?new URL(e,Re.scriptDirectory).toString():T(e)?e:Re.scriptDirectory+e,Re.fetch_like=S,Re.out=console.log,Re.err=console.error,Re.onDownloadResourceProgress=e.onDownloadResourceProgress,ve&&globalThis.navigator){const e=globalThis.navigator,t=e.userAgentData&&e.userAgentData.brands;t&&t.length>0?Re.isChromium=t.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):e.userAgent&&(Re.isChromium=e.userAgent.includes("Chrome"),Re.isFirefox=e.userAgent.includes("Firefox"))}xe.require=we?await import("module").then((e=>e.createRequire(import.meta.url))):Promise.resolve((()=>{throw new Error("require not supported")})),void 0===globalThis.URL&&(globalThis.URL=x)}(Ie),Ie.ENVIRONMENT_IS_PTHREAD?async function(){(function(){const e=new MessageChannel,t=e.port1,o=e.port2;t.addEventListener("message",(e=>{var n;n=JSON.parse(e.data.config),Le?a("mono config already received"):(de(Re.config,n),ge(),a("mono config received"),Le=!0,Re.afterConfigLoaded.promise_control.resolve(Re.config),ve&&n.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&Re.setup_proxy_console("pthread-worker",console,self.location.href)),t.close(),o.close()}),{once:!0}),t.start(),self.postMessage({[$e]:{monoCmd:"preload",port:o}},[o])})(),await Re.afterConfigLoaded.promise,function(){const e=Re.config;e.assets||De(!1,"config.assets must be defined");for(const t of e.assets)J(t)}();const e=Pe(),t=await Promise.all(e);return await ze(t),Ie}():async function(){var e;Ie.configSrc||Re.config&&0!==Object.keys(Re.config).length&&(Re.config.assets||Re.config.resources)||(Ie.configSrc="./blazor.boot.json"),await async function(e){var t;const o=e.configSrc;if(pe)await Re.afterConfigLoaded.promise;else try{if(pe=!0,o&&(a("mono_wasm_load_config"),await async function(e){const t=Re.locateFile(e.configSrc),o=void 0!==Re.loadBootResource?Re.loadBootResource("manifest","blazor.boot.json",t,"","manifest"):s(t);let n;n=o?"string"==typeof o?await s(A(o)):await o:await s(X(t,"manifest"));const r=await async function(e){const t=Re.config,o=await e.json();t.applicationEnvironment||(o.applicationEnvironment=e.headers.get("Blazor-Environment")||e.headers.get("DotNet-Environment")||"Production"),o.environmentVariables||(o.environmentVariables={});const n=e.headers.get("DOTNET-MODIFIABLE-ASSEMBLIES");n&&(o.environmentVariables.DOTNET_MODIFIABLE_ASSEMBLIES=n);const r=e.headers.get("ASPNETCORE-BROWSER-TOOLS");return r&&(o.environmentVariables.__ASPNETCORE_BROWSER_TOOLS=r),o}(n);function s(e){return Re.fetch_like(e,{method:"GET",credentials:"include",cache:"no-cache"})}de(Re.config,r)}(e)),ge(),await ae(null===(t=Re.config.resources)||void 0===t?void 0:t.modulesAfterConfigLoaded),await le("onRuntimeConfigLoaded",[Re.config]),e.onConfigLoaded)try{await e.onConfigLoaded(Re.config,je),ge()}catch(e){throw u("onConfigLoaded() failed",e),e}ge(),Re.config.startupMemoryCache&&e.instantiateWasm&&De(!1,"startupMemoryCache is not supported with Module.instantiateWasm"),Re.afterConfigLoaded.promise_control.resolve(Re.config),Re.config.startupMemoryCache||Re.memorySnapshotSkippedOrDone.promise_control.resolve()}catch(t){const n=`Failed to load config file ${o} ${t} ${null==t?void 0:t.stack}`;throw Re.config=e.config=Object.assign(Re.config,{message:n,error:t,isError:!0}),ke(1,new Error(n)),t}}(Ie),function(){const e=Re.config,t=[];if(e.assets)for(const t of e.assets)"object"!=typeof t&&De(!1,`asset must be object, it was ${typeof t} : ${t}`),"string"!=typeof t.behavior&&De(!1,"asset behavior must be known string"),"string"!=typeof t.name&&De(!1,"asset name must be string"),t.resolvedUrl&&"string"!=typeof t.resolvedUrl&&De(!1,"asset resolvedUrl could be string"),t.hash&&"string"!=typeof t.hash&&De(!1,"asset resolvedUrl could be string"),t.pendingDownload&&"object"!=typeof t.pendingDownload&&De(!1,"asset pendingDownload could be object"),W[t.behavior]?M.push(t):$.push(t),J(t);else if(e.resources){const o=e.resources;if(o.wasmNative||De(!1,"resources.wasmNative must be defined"),o.jsModuleNative||De(!1,"resources.jsModuleNative must be defined"),o.jsModuleRuntime||De(!1,"resources.jsModuleRuntime must be defined"),q($,o.wasmNative,"dotnetwasm"),q(t,o.jsModuleNative,"js-module-native"),q(t,o.jsModuleRuntime,"js-module-runtime"),o.assembly)for(const e in o.assembly)M.push({name:e,hash:o.assembly[e],behavior:"assembly"});if(0!=e.debugLevel&&o.pdb)for(const e in o.pdb)M.push({name:e,hash:o.pdb[e],behavior:"pdb"});if(e.loadAllSatelliteResources&&o.satelliteResources)for(const e in o.satelliteResources)for(const t in o.satelliteResources[e])M.push({name:t,hash:o.satelliteResources[e][t],behavior:"resource",culture:e});if(o.vfs)for(const e in o.vfs)for(const t in o.vfs[e])$.push({name:t,hash:o.vfs[e][t],behavior:"vfs",virtualPath:e});const n=j(e);if(n&&o.icu)for(const e in o.icu)e===n&&M.push({name:e,hash:o.icu[e],behavior:"icu",loadRemote:!0});if(o.wasmSymbols)for(const e in o.wasmSymbols)$.push({name:e,hash:o.wasmSymbols[e],behavior:"symbols"})}if(e.appsettings)for(let t=0;t{Re.wasmDownloadPromise.promise_control.resolve(e)})).catch((e=>{ke(1,e)})),setTimeout((()=>{(function(){if(Re.preferredIcuAsset=j(Re.config),Re.invariantMode="invariant"==Re.config.globalizationMode,!Re.invariantMode)if(Re.preferredIcuAsset)a("ICU data archive(s) available, disabling invariant mode");else{if("custom"===Re.config.globalizationMode||"all"===Re.config.globalizationMode||"sharded"===Re.config.globalizationMode){const e="invariant globalization mode is inactive and no ICU data archives are available";throw Re.err(`ERROR: ${e}`),new Error(e)}a("ICU data archive(s) not available, using invariant globalization mode"),Re.invariantMode=!0,Re.preferredIcuAsset=null}const e="DOTNET_SYSTEM_GLOBALIZATION_INVARIANT",t="DOTNET_SYSTEM_GLOBALIZATION_HYBRID",o=Re.config.environmentVariables;if(void 0===o[t]&&"hybrid"===Re.config.globalizationMode?o[t]="1":void 0===o[e]&&Re.invariantMode&&(o[e]="1"),void 0===o.TZ)try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone||null;e&&(o.TZ=e)}catch(e){!function(e,...t){console.info(i+e,...t)}("failed to detect timezone, will fallback to UTC")}})(),Q()}),0);const o=await Promise.all(t);return await ze(o),await Ee.dotnetReady.promise,await ae(null===(e=Re.config.resources)||void 0===e?void 0:e.modulesAfterRuntimeReady),await le("onRuntimeReady",[Ae.api]),je}()}function Pe(){const e=H("js-module-runtime"),t=H("js-module-native");let o,n;return"object"==typeof e.moduleExports?o=e.moduleExports:(a(`Attempting to import '${e.resolvedUrl}' for ${e.name}`),o=import(e.resolvedUrl)),"object"==typeof t.moduleExports?n=t.moduleExports:(a(`Attempting to import '${t.resolvedUrl}' for ${t.name}`),n=import(t.resolvedUrl)),[o,n]}async function ze(e){const{initializeExports:t,initializeReplacements:o,configureRuntimeStartup:n,configureEmscriptenStartup:r,configureWorkerStartup:s,setRuntimeGlobals:i,passEmscriptenInternals:a}=e[0],{default:l}=e[1];i(Ae),t(Ae),await n(),Re.runtimeModuleLoaded.promise_control.resolve(),l((e=>(Object.assign(Ie,{ready:e.ready,__dotnet_runtime:{initializeReplacements:o,configureEmscriptenStartup:r,configureWorkerStartup:s,passEmscriptenInternals:a}}),Ie)))}const Fe=new class{withModuleConfig(e){try{return fe(Ie,e),this}catch(e){throw ke(1,e),e}}withOnConfigLoaded(e){try{return fe(Ie,{onConfigLoaded:e}),this}catch(e){throw ke(1,e),e}}withConsoleForwarding(){try{return de(Ue,{forwardConsoleLogsToWS:!0}),this}catch(e){throw ke(1,e),e}}withExitOnUnhandledError(){const e=function(e,t){e.preventDefault();try{t&&t.silent||ke(1,t)}catch(e){}};try{return ve&&(window.addEventListener("unhandledrejection",(t=>e(t,t.reason))),window.addEventListener("error",(t=>e(t,t.error)))),this}catch(e){throw ke(1,e),e}}withAsyncFlushOnExit(){try{return de(Ue,{asyncFlushOnExit:!0}),this}catch(e){throw ke(1,e),e}}withExitCodeLogging(){try{return de(Ue,{logExitCode:!0}),this}catch(e){throw ke(1,e),e}}withElementOnExit(){try{return de(Ue,{appendElementOnExit:!0}),this}catch(e){throw ke(1,e),e}}withInteropCleanupOnExit(){try{return de(Ue,{interopCleanupOnExit:!0}),this}catch(e){throw ke(1,e),e}}withAssertAfterExit(){try{return de(Ue,{assertAfterExit:!0}),this}catch(e){throw ke(1,e),e}}withWaitingForDebugger(e){try{return de(Ue,{waitForDebugger:e}),this}catch(e){throw ke(1,e),e}}withStartupMemoryCache(e){try{return de(Ue,{startupMemoryCache:e}),this}catch(e){throw ke(1,e),e}}withConfig(e){try{return de(Ue,e),this}catch(e){throw ke(1,e),e}}withConfigSrc(e){try{return e&&"string"==typeof e||De(!1,"must be file path or URL"),fe(Ie,{configSrc:e}),this}catch(e){throw ke(1,e),e}}withVirtualWorkingDirectory(e){try{return e&&"string"==typeof e||De(!1,"must be directory path"),this.virtualWorkingDirectory=e,this}catch(e){throw ke(1,e),e}}withEnvironmentVariable(e,t){try{const o={};return o[e]=t,de(Ue,{environmentVariables:o}),this}catch(e){throw ke(1,e),e}}withEnvironmentVariables(e){try{return e&&"object"==typeof e||De(!1,"must be dictionary object"),de(Ue,{environmentVariables:e}),this}catch(e){throw ke(1,e),e}}withDiagnosticTracing(e){try{return"boolean"!=typeof e&&De(!1,"must be boolean"),de(Ue,{diagnosticTracing:e}),this}catch(e){throw ke(1,e),e}}withDebugging(e){try{return e&&"number"==typeof e||De(!1,"must be number"),de(Ue,{debugLevel:e}),this}catch(e){throw ke(1,e),e}}withApplicationArguments(...e){try{return e&&Array.isArray(e)||De(!1,"must be array of strings"),this.applicationArguments=e,this}catch(e){throw ke(1,e),e}}withRuntimeOptions(e){try{return e&&Array.isArray(e)||De(!1,"must be array of strings"),de(Ue,{runtimeOptions:e}),this}catch(e){throw ke(1,e),e}}withMainAssembly(e){try{return de(Ue,{mainAssemblyName:e}),this}catch(e){throw ke(1,e),e}}withApplicationArgumentsFromQuery(){try{if(!globalThis.window)throw new Error("Missing window to the query parameters from");if(void 0===globalThis.URLSearchParams)throw new Error("URLSearchParams is supported");const e=new URLSearchParams(window.location.search).getAll("arg");return this.withApplicationArguments(...e)}catch(e){throw ke(1,e),e}}withApplicationEnvironment(e){try{return de(Ue,{applicationEnvironment:e}),this}catch(e){throw ke(1,e),e}}withApplicationCulture(e){try{return de(Ue,{applicationCulture:e}),this}catch(e){throw ke(1,e),e}}withResourceLoader(e){try{return Re.loadBootResource=e,this}catch(e){throw ke(1,e),e}}async create(){try{if(this.instance||(ve&&Ie.config.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&f("main",globalThis.console,globalThis.location.origin),Ie||De(!1,"Null moduleConfig"),Ie.config||De(!1,"Null moduleConfig.config"),await Ne(Ie),this.instance=Ae.api),this.virtualWorkingDirectory){const e=this.instance.Module.FS,t=e.stat(this.virtualWorkingDirectory);t&&e.isDir(t.mode)||De(!1,`Could not find working directory ${this.virtualWorkingDirectory}`),e.chdir(this.virtualWorkingDirectory)}return this.instance}catch(e){throw ke(1,e),e}}async run(){try{if(Ie.config||De(!1,"Null moduleConfig.config"),this.instance||await this.create(),Ie.config.mainAssemblyName||De(!1,"Null moduleConfig.config.mainAssemblyName"),!this.applicationArguments)if(we){const e=await import("process");this.applicationArguments=e.argv.slice(2)}else this.applicationArguments=[];return this.instance.runMainAndExit(Ie.config.mainAssemblyName,this.applicationArguments)}catch(e){throw ke(1,e),e}}},We=ke,Be=Ne;_e||"function"==typeof globalThis.URL||De(!1,"This browser/engine doesn't support URL API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"),"function"!=typeof globalThis.BigInt64Array&&De(!1,"This browser/engine doesn't support BigInt64Array API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features");export{Be as default,Fe as dotnet,We as exit}; +//# sourceMappingURL=dotnet.js.map diff --git a/_framework/dotnet.js.br b/_framework/dotnet.js.br new file mode 100644 index 0000000..4eb51d7 Binary files /dev/null and b/_framework/dotnet.js.br differ diff --git a/_framework/dotnet.js.gz b/_framework/dotnet.js.gz new file mode 100644 index 0000000..627e750 Binary files /dev/null and b/_framework/dotnet.js.gz differ diff --git a/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js new file mode 100644 index 0000000..6974b88 --- /dev/null +++ b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js @@ -0,0 +1,6192 @@ + +var createDotnetRuntime = (() => { + var _scriptDir = import.meta.url; + + return ( +async function(createDotnetRuntime = {}) { + +// include: shell.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = typeof createDotnetRuntime != 'undefined' ? createDotnetRuntime : {}; + +// Set up the promise that indicates the Module is initialized +var readyPromiseResolve, readyPromiseReject; +Module['ready'] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; +}); + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) +if (_nativeModuleLoaded) throw new Error("Native module already loaded"); +_nativeModuleLoaded = true; +createDotnetRuntime = Module = createDotnetRuntime(Module); + + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = Object.assign({}, Module); + +var arguments_ = []; +var thisProgram = './this.program'; +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). + +// Attempt to auto-detect the environment +var ENVIRONMENT_IS_WEB = typeof window == 'object'; +var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; +// N.b. Electron.js environment is simultaneously a NODE-environment, but +// also a web environment. +var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string'; +var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ''; +function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var read_, + readAsync, + readBinary, + setWindowTitle; + +if (ENVIRONMENT_IS_NODE) { + + // `require()` is no-op in an ESM module, use `createRequire()` to construct + // the require()` function. This is only necessary for multi-environment + // builds, `-sENVIRONMENT=node` emits a static import declaration instead. + // TODO: Swap all `require()`'s with `import()`'s? + const { createRequire } = await import('module'); + /** @suppress{duplicate} */ + var require = createRequire(import.meta.url); + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. + var fs = require('fs'); + var nodePath = require('path'); + + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = nodePath.dirname(scriptDirectory) + '/'; + } else { + // EXPORT_ES6 + ENVIRONMENT_IS_NODE always requires use of import.meta.url, + // since there's no way getting the current absolute path of the module when + // support for that is not available. + scriptDirectory = require('url').fileURLToPath(new URL('./', import.meta.url)); // includes trailing slash + } + +// include: node_shell_read.js +read_ = (filename, binary) => { + // We need to re-wrap `file://` strings to URLs. Normalizing isn't + // necessary in that case, the path should already be absolute. + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + return fs.readFileSync(filename, binary ? undefined : 'utf8'); +}; + +readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + return ret; +}; + +readAsync = (filename, onload, onerror) => { + // See the comment in the `read_` function. + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + fs.readFile(filename, function(err, data) { + if (err) onerror(err); + else onload(data.buffer); + }); +}; + +// end include: node_shell_read.js + if (process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, '/'); + } + + arguments_ = process.argv.slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; + +} else +if (ENVIRONMENT_IS_SHELL) { + + if (typeof read != 'undefined') { + read_ = function shell_read(f) { + return read(f); + }; + } + + readBinary = function readBinary(f) { + let data; + if (typeof readbuffer == 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data == 'object'); + return data; + }; + + readAsync = function readAsync(f, onload, onerror) { + setTimeout(() => onload(readBinary(f)), 0); + }; + + if (typeof clearTimeout == 'undefined') { + globalThis.clearTimeout = (id) => {}; + } + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit == 'function') { + quit_ = (status, toThrow) => { + // Unlike node which has process.exitCode, d8 has no such mechanism. So we + // have no way to set the exit code and then let the program exit with + // that code when it naturally stops running (say, when all setTimeouts + // have completed). For that reason, we must call `quit` - the only way to + // set the exit code - but quit also halts immediately. To increase + // consistency with node (and the web) we schedule the actual quit call + // using a setTimeout to give the current stack and any exception handlers + // a chance to run. This enables features such as addOnPostRun (which + // expected to be able to run code after main returns). + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == 'object' && toThrow.stack) { + toLog = [toThrow, toThrow.stack]; + } + err('exiting due to exception: ' + toLog); + } + quit(status); + }); + throw toThrow; + }; + } + + if (typeof print != 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console == 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print); + } + +} else + +// Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != 'undefined' && document.currentScript) { // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); + } else { + scriptDirectory = ''; + } + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { +// include: web_or_worker_shell_read.js +read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + } + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + } + +// end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => document.title = title; +} else +{ +} + +var out = Module['print'] || console.log.bind(console); +var err = Module['printErr'] || console.warn.bind(console); + +// Merge back in the overrides +Object.assign(Module, moduleOverrides); +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = null; + +// Emit code to handle expected values on the Module object. This applies Module.x +// to the proper local x. This has two benefits: first, we only emit it if it is +// expected to arrive, and second, by using a local everywhere else that can be +// minified. + +if (Module['arguments']) arguments_ = Module['arguments']; + +if (Module['thisProgram']) thisProgram = Module['thisProgram']; + +if (Module['quit']) quit_ = Module['quit']; + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message + + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +var wasmBinary; +if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; +var noExitRuntime = Module['noExitRuntime'] || true; + +if (typeof WebAssembly != 'object') { + abort('no native wasm support detected'); +} + +// Wasm globals + +var wasmMemory; + +//======================================== +// Runtime essentials +//======================================== + +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +/** @type {function(*, string=)} */ +function assert(condition, text) { + if (!condition) { + // This build was created without ASSERTIONS defined. `assert()` should not + // ever be called in this configuration but in case there are callers in + // the wild leave this simple abort() implemenation here for now. + abort(text); + } +} + +// include: runtime_strings.js +// runtime_strings.js: String related runtime functions that are part of both +// MINIMAL_RUNTIME and regular runtime. + +var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; + +/** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ +function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ''; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + return str; +} + +/** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first \0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ +function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; +} + +/** + * Copies the given Javascript String object 'str' to the given byte array at + * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. Use the function + * lengthBytesUTF8 to compute the exact number of bytes (excluding null + * terminator) that this function will write. + * + * @param {string} str - The Javascript string to copy. + * @param {ArrayBufferView|Array} heap - The array to copy to. Each + * index in this array is assumed + * to be one 8-byte element. + * @param {number} outIdx - The starting offset in the array to begin the copying. + * @param {number} maxBytesToWrite - The maximum number of bytes this function + * can write to the array. This count should + * include the null terminator, i.e. if + * maxBytesToWrite=1, only the null terminator + * will be written and nothing else. + * maxBytesToWrite=0 does not write any bytes + * to the output, not even the null + * terminator. + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ +function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) { + var u1 = str.charCodeAt(++i); + u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +} + +/** + * Copies the given Javascript String object 'str' to the emscripten HEAP at + * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. + * Use the function lengthBytesUTF8 to compute the exact number of bytes + * (excluding null terminator) that this function will write. + * + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ +function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} + +/** + * Returns the number of bytes the given Javascript string takes if encoded as a + * UTF8 byte array, EXCLUDING the null terminator byte. + * + * @param {string} str - JavaScript string to operator on + * @return {number} Length, in bytes, of the UTF8 encoded string. + */ +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7F) { + len++; + } else if (c <= 0x7FF) { + len += 2; + } else if (c >= 0xD800 && c <= 0xDFFF) { + len += 4; ++i; + } else { + len += 3; + } + } + return len; +} + +// end include: runtime_strings.js +// Memory management + +var HEAP, +/** @type {!Int8Array} */ + HEAP8, +/** @type {!Uint8Array} */ + HEAPU8, +/** @type {!Int16Array} */ + HEAP16, +/** @type {!Uint16Array} */ + HEAPU16, +/** @type {!Int32Array} */ + HEAP32, +/** @type {!Uint32Array} */ + HEAPU32, +/** @type {!Float32Array} */ + HEAPF32, +/* BigInt64Array type is not correctly defined in closure +/** not-@type {!BigInt64Array} */ + HEAP64, +/* BigUInt64Array type is not correctly defined in closure +/** not-t@type {!BigUint64Array} */ + HEAPU64, +/** @type {!Float64Array} */ + HEAPF64; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(b); + Module['HEAP16'] = HEAP16 = new Int16Array(b); + Module['HEAP32'] = HEAP32 = new Int32Array(b); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); + Module['HEAPF32'] = HEAPF32 = new Float32Array(b); + Module['HEAPF64'] = HEAPF64 = new Float64Array(b); + Module['HEAP64'] = HEAP64 = new BigInt64Array(b); + Module['HEAPU64'] = HEAPU64 = new BigUint64Array(b); +} + +// include: runtime_init_table.js +// In regular non-RELOCATABLE mode the table is exported +// from the wasm module and this will be assigned once +// the exports are available. +var wasmTable; + +// end include: runtime_init_table.js +// include: runtime_stack_check.js +// end include: runtime_stack_check.js +// include: runtime_assertions.js +// end include: runtime_assertions.js +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the main() is called + +var runtimeInitialized = false; + +var runtimeKeepaliveCounter = 0; + +function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; +} + +function preRun() { + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function initRuntime() { + runtimeInitialized = true; + + +if (!Module["noFSInit"] && !FS.init.initialized) + FS.init(); +FS.ignorePermissions = false; + +TTY.init(); + callRuntimeCallbacks(__ATINIT__); +} + +function postRun() { + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} + +function addOnExit(cb) { +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +// include: runtime_math.js +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + +// end include: runtime_math.js +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// Module.preRun (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + +function getUniqueRunDependency(id) { + return id; +} + +function addRunDependency(id) { + runDependencies++; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + +} + +function removeRunDependency(id) { + runDependencies--; + + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} + +/** @param {string|number=} what */ +function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + + what = 'Aborted(' + what + ')'; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + what += '. Build with -sASSERTIONS for more info.'; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + // See above, in the meantime, we resort to wasm code for trapping. + // + // In case abort() is called before the module is initialized, Module['asm'] + // and its exported '__trap' function is not available, in which case we throw + // a RuntimeError. + // + // We trap instead of throwing RuntimeError to prevent infinite-looping in + // Wasm EH code (because RuntimeError is considered as a foreign exception and + // caught by 'catch_all'), but in case throwing RuntimeError is fine because + // the module has not even been instantiated, even less running. + if (runtimeInitialized) { + ___trap(); + } + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +// include: memoryprofiler.js +// end include: memoryprofiler.js +// include: URIUtils.js +// Prefix of data URIs emitted by SINGLE_FILE and related options. +var dataURIPrefix = 'data:application/octet-stream;base64,'; + +// Indicates whether filename is a base64 data URI. +function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); +} + +// Indicates whether filename is delivered via file protocol (as opposed to http/https) +function isFileURI(filename) { + return filename.startsWith('file://'); +} + +// end include: URIUtils.js +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +var wasmBinaryFile; +if (Module['locateFile']) { + wasmBinaryFile = 'dotnet.native.wasm'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } +} else { + // Use bundler-friendly `new URL(..., import.meta.url)` pattern; works in browsers too. + wasmBinaryFile = new URL('dotnet.native.wasm', import.meta.url).href; +} + +function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } + catch (err) { + abort(err); + } +} + +function getBinaryPromise(binaryFile) { + // If we don't have the binary yet, try to to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == 'function' + && !isFileURI(binaryFile) + ) { + return fetch(binaryFile, { credentials: 'same-origin' }).then(function(response) { + if (!response['ok']) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response['arrayBuffer'](); + }).catch(function () { + return getBinary(binaryFile); + }); + } + else { + if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise(function(resolve, reject) { + readAsync(binaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject) + }); + } + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(function() { return getBinary(binaryFile); }); +} + +function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then(function(binary) { + return WebAssembly.instantiate(binary, imports); + }).then(function (instance) { + return instance; + }).then(receiver, function(reason) { + err('failed to asynchronously prepare wasm: ' + reason); + + abort(reason); + }); +} + +function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && + typeof WebAssembly.instantiateStreaming == 'function' && + !isDataURI(binaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(binaryFile) && + // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && + typeof fetch == 'function') { + return fetch(binaryFile, { credentials: 'same-origin' }).then(function(response) { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, imports); + + return result.then( + callback, + function(reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err('wasm streaming compile failed: ' + reason); + err('falling back to ArrayBuffer instantiation'); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } else { + return instantiateArrayBuffer(binaryFile, imports, callback); + } +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +function createWasm() { + // prepare imports + var info = { + 'env': wasmImports, + 'wasi_snapshot_preview1': wasmImports, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module['asm'] = exports; + + wasmMemory = Module['asm']['memory']; + updateMemoryViews(); + + wasmTable = Module['asm']['__indirect_function_table']; + + addOnInit(Module['asm']['__wasm_call_ctors']); + + removeRunDependency('wasm-instantiate'); + + return exports; + } + // wait for the pthread pool (if any) + addRunDependency('wasm-instantiate'); + + // Prefer streaming instantiation if available. + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + receiveInstance(result['instance']); + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel + // to any other async startup actions they are performing. + // Also pthreads and wasm workers initialize the wasm instance through this path. + if (Module['instantiateWasm']) { + try { + return Module['instantiateWasm'](info, receiveInstance); + } catch(e) { + err('Module.instantiateWasm callback failed with error: ' + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; +var tempI64; + +// include: runtime_debug.js +// end include: runtime_debug.js +// === Body === + + +// end include: preamble.js + + /** @constructor */ + function ExitStatus(status) { + this.name = 'ExitStatus'; + this.message = 'Program terminated with exit(' + status + ')'; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP64[((ptr)>>3)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + case '*': return HEAPU32[((ptr)>>2)]; + default: abort('invalid type for getValue: ' + type); + } + } + + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': HEAP8[((ptr)>>0)] = value; break; + case 'i8': HEAP8[((ptr)>>0)] = value; break; + case 'i16': HEAP16[((ptr)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)] = tempI64[0],HEAP32[(((ptr)+(4))>>2)] = tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + case '*': HEAPU32[((ptr)>>2)] = value; break; + default: abort('invalid type for setValue: ' + type); + } + } + + function ___assert_fail(condition, filename, line, func) { + abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); + } + + var PATH = {isAbs:(path) => path.charAt(0) === '/',splitPath:(filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:(parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + },normalize:(path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:(path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:(path) => { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },join:function() { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join('/')); + },join2:(l, r) => { + return PATH.normalize(l + '/' + r); + }}; + + function getRandomDevice() { + if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else + if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require('crypto'); + // nodejs has crypto support + return () => crypto_module['randomBytes'](1)[0]; + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + return () => abort("randomDevice"); + } + + + + var PATH_FS = {resolve:function() { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:(from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + + /** @type {function(string, boolean=, number=)} */ + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var TTY = {ttys:[],init:function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process.stdin.setEncoding('utf8'); + // } + },shutdown:function() { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process.stdin.pause(); + // } + },register:function(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + },close:function(stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + },fsync:function(stream) { + stream.tty.ops.fsync(stream.tty); + },read:function(stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function(tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes('EOF')) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + } else + if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },fsync:function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },fsync:function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + + function zeroMemory(address, size) { + HEAPU8.fill(0, address, address + size); + return address; + } + + function alignMemory(size, alignment) { + return Math.ceil(size / alignment) * alignment; + } + function mmapAlloc(size) { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (!ptr) return 0; + return zeroMemory(ptr, size); + } + var MEMFS = {ops_table:null,mount:function(mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + },getFileDataAsTypedArray:function(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + },resizeFileStorage:function(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + } + },node_ops:{getattr:function(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function(parent, name) { + throw FS.genericErrors[44]; + },mknod:function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function(old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now() + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + },unlink:function(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + },rmdir:function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + },readdir:function(node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }},stream_ops:{read:function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function(stream, buffer, offset, length, position, canOwn) { + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + },llseek:function(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + },allocate:function(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === HEAP8.buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the + // buffer we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + /** @param {boolean=} noRunDep */ + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + readAsync(url, (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + } + + var FS = {root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path, opts = {}) => { + path = PATH_FS.resolve(path); + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + opts = Object.assign(defaults, opts) + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the absolute path + var parts = path.split('/').filter((p) => !!p); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:(node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:(parentid, name) => { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:(node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:(node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:(parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:(parent, name, mode, rdev) => { + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:(node) => { + FS.hashRemoveNode(node); + },isRoot:(node) => { + return node === node.parent; + },isMountpoint:(node) => { + return !!node.mounted; + },isFile:(mode) => { + return (mode & 61440) === 32768; + },isDir:(mode) => { + return (mode & 61440) === 16384; + },isLink:(mode) => { + return (mode & 61440) === 40960; + },isChrdev:(mode) => { + return (mode & 61440) === 8192; + },isBlkdev:(mode) => { + return (mode & 61440) === 24576; + },isFIFO:(mode) => { + return (mode & 61440) === 4096; + },isSocket:(mode) => { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:(str) => { + var flags = FS.flagModes[str]; + if (typeof flags == 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:(flag) => { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:(node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes('r') && !(node.mode & 292)) { + return 2; + } else if (perms.includes('w') && !(node.mode & 146)) { + return 2; + } else if (perms.includes('x') && !(node.mode & 73)) { + return 2; + } + return 0; + },mayLookup:(dir) => { + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + },mayCreate:(dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:(dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + },mayOpen:(node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:(fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + },getStream:(fd) => FS.streams[fd],createStream:(stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function() { + this.shared = { }; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + /** @this {FS.FSStream} */ + get: function() { return this.node; }, + /** @this {FS.FSStream} */ + set: function(val) { this.node = val; } + }, + isRead: { + /** @this {FS.FSStream} */ + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + /** @this {FS.FSStream} */ + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + /** @this {FS.FSStream} */ + get: function() { return (this.flags & 1024); } + }, + flags: { + /** @this {FS.FSStream} */ + get: function() { return this.shared.flags; }, + /** @this {FS.FSStream} */ + set: function(val) { this.shared.flags = val; }, + }, + position : { + /** @this {FS.FSStream} */ + get: function() { return this.shared.position; }, + /** @this {FS.FSStream} */ + set: function(val) { this.shared.position = val; }, + }, + }); + } + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:(fd) => { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:(stream) => { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:() => { + throw new FS.ErrnoError(70); + }},major:(dev) => ((dev) >> 8),minor:(dev) => ((dev) & 0xff),makedev:(ma, mi) => ((ma) << 8 | (mi)),registerDevice:(dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:(dev) => FS.devices[dev],getMounts:(mount) => { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:(populate, callback) => { + if (typeof populate == 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:(type, opts, mountpoint) => { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:(mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + },lookup:(parent, name) => { + return parent.node_ops.lookup(parent, name); + },mknod:(path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:(path, mode) => { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:(path, mode) => { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:(path, mode) => { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != 20) throw e; + } + } + },mkdev:(path, mode, dev) => { + if (typeof dev == 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:(oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:(old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existant directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + },rmdir:(path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + },readdir:(path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + },unlink:(path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + },readlink:(path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:(path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + },lstat:(path) => { + return FS.stat(path, true); + },chmod:(path, mode, dontFollow) => { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:(path, mode) => { + FS.chmod(path, mode, true); + },fchmod:(fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + },chown:(path, uid, gid, dontFollow) => { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:(path, uid, gid) => { + FS.chown(path, uid, gid, true); + },fchown:(fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + },truncate:(path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:(fd, len) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + },utime:(path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:(path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512) && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + },close:(stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + },isClosed:(stream) => { + return stream.fd === null; + },llseek:(stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:(stream, buffer, offset, length, position) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:(stream, buffer, offset, length, position, canOwn) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + },allocate:(stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:(stream, length, position, prot, flags) => { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 + && (flags & 2) === 0 + && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + },msync:(stream, buffer, offset, length, mmapFlags) => { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:(stream) => 0,ioctl:(stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:(path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:(path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == 'string') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error('Unsupported data type'); + } + FS.close(stream); + },cwd:() => FS.currentPath,chdir:(path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:() => { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:() => { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device = getRandomDevice(); + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:() => { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + var proc_self = FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: () => { + var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: () => stream.path }, + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:() => { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 0); + var stdout = FS.open('/dev/stdout', 1); + var stderr = FS.open('/dev/stderr', 1); + },ensureErrnoError:() => { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + // We set the `name` property to be able to identify `FS.ErrnoError` + // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. + // - when using PROXYFS, an error can come from an underlying FS + // as different FS objects have their own FS.ErrnoError each, + // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. + // we'll use the reliable test `err.name == "ErrnoError"` instead + this.name = 'ErrnoError'; + this.node = node; + this.setErrno = /** @this{Object} */ function(errno) { + this.errno = errno; + }; + this.setErrno(errno); + this.message = 'FS error'; + + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:() => { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + }; + },init:(input, output, error) => { + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:() => { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:(canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },findObject:(path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + },analyzePath:(path, dontResolveLastLink) => { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createPath:(parent, path, canRead, canWrite) => { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:(parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:(parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:(parent, name, input, output) => { + var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: (stream) => { + stream.seekable = false; + }, + close: (stream) => { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos /* ignored */) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },forceLoadFile:(obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + },createLazyFile:(parent, name, url, canRead, canWrite) => { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */(xhr.response || [])); + } + return intArrayFromString(xhr.responseText || '', true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == 'undefined') { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: /** @this{Object} */ function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position) + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr: ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) onerror(); + removeRunDependency(dep); + })) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + },indexedDB:() => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:() => { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths, onload = (() => {}), onerror = (() => {})) => { + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = () => { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:(paths, onload = (() => {}), onerror = (() => {})) => { + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = () => { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach((path) => { + var getRequest = files.get(path); + getRequest.onsuccess = () => { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }}; + var SYSCALLS = {DEFAULT_POLLMASK:5,calculateAt:function(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44);; + } + return dir; + } + return PATH.join2(dir, path); + },doStat:function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[((buf)>>2)] = stat.dev; + HEAP32[(((buf)+(8))>>2)] = stat.ino; + HEAP32[(((buf)+(12))>>2)] = stat.mode; + HEAPU32[(((buf)+(16))>>2)] = stat.nlink; + HEAP32[(((buf)+(20))>>2)] = stat.uid; + HEAP32[(((buf)+(24))>>2)] = stat.gid; + HEAP32[(((buf)+(28))>>2)] = stat.rdev; + (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); + HEAP32[(((buf)+(48))>>2)] = 4096; + HEAP32[(((buf)+(52))>>2)] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + (tempI64 = [Math.floor(atime / 1000)>>>0,(tempDouble=Math.floor(atime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]); + HEAPU32[(((buf)+(64))>>2)] = (atime % 1000) * 1000; + (tempI64 = [Math.floor(mtime / 1000)>>>0,(tempDouble=Math.floor(mtime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]); + HEAPU32[(((buf)+(80))>>2)] = (mtime % 1000) * 1000; + (tempI64 = [Math.floor(ctime / 1000)>>>0,(tempDouble=Math.floor(ctime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]); + HEAPU32[(((buf)+(96))>>2)] = (ctime % 1000) * 1000; + (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(104))>>2)] = tempI64[0],HEAP32[(((buf)+(108))>>2)] = tempI64[1]); + return 0; + },doMsync:function(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + },varargs:undefined,get:function() { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + },getStreamFromFD:function(fd) { + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + return stream; + }}; + function ___syscall_faccessat(dirfd, path, amode, flags) { + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (amode & ~7) { + // need a valid mode + return -28; + } + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node) { + return -44; + } + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_fadvise64(fd, offset, len, advice) { + return 0; // your advice is important to us (but we can't use it) + } + + function setErrNo(value) { + HEAP32[((___errno_location())>>2)] = value; + return value; + } + + function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: + /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)] = 2; + return 0; + } + case 6: + case 7: + /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_fstat64(fd, buf) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + return SYSCALLS.doStat(FS.stat, stream.path, buf); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_statfs64(path, size, buf) { + try { + + path = SYSCALLS.getStr(path); + // NOTE: None of the constants here are true. We're just returning safe and + // sane values. + HEAP32[(((buf)+(4))>>2)] = 4096; + HEAP32[(((buf)+(40))>>2)] = 4096; + HEAP32[(((buf)+(8))>>2)] = 1000000; + HEAP32[(((buf)+(12))>>2)] = 500000; + HEAP32[(((buf)+(16))>>2)] = 500000; + HEAP32[(((buf)+(20))>>2)] = FS.nextInode; + HEAP32[(((buf)+(24))>>2)] = 1000000; + HEAP32[(((buf)+(28))>>2)] = 42; + HEAP32[(((buf)+(44))>>2)] = 2; // ST_NOSUID + HEAP32[(((buf)+(36))>>2)] = 255; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_fstatfs64(fd, size, buf) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + return ___syscall_statfs64(0, size, buf); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + var MAX_INT53 = 9007199254740992; + + var MIN_INT53 = -9007199254740992; + function bigintToI53Checked(num) { + return (num < MIN_INT53 || num > MAX_INT53) ? NaN : Number(num); + } + + + + + function ___syscall_ftruncate64(fd, /** @type {!BigInt} */ length) { + try { + + length = bigintToI53Checked(length); if (isNaN(length)) return -61; + FS.ftruncate(fd, length); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_getcwd(buf, size) { + try { + + if (size === 0) return -28; + var cwd = FS.cwd(); + var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; + if (size < cwdLengthInBytes) return -68; + stringToUTF8(cwd, buf, size); + return cwdLengthInBytes; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_getdents64(fd, dirp, count) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd) + if (!stream.getdents) { + stream.getdents = FS.readdir(stream.path); + } + + var struct_size = 280; + var pos = 0; + var off = FS.llseek(stream, 0, 1); + + var idx = Math.floor(off / struct_size); + + while (idx < stream.getdents.length && pos + struct_size <= count) { + var id; + var type; + var name = stream.getdents[idx]; + if (name === '.') { + id = stream.node.id; + type = 4; // DT_DIR + } + else if (name === '..') { + var lookup = FS.lookupPath(stream.path, { parent: true }); + id = lookup.node.id; + type = 4; // DT_DIR + } + else { + var child = FS.lookupNode(stream.node, name); + id = child.id; + type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device. + FS.isDir(child.mode) ? 4 : // DT_DIR, directory. + FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link. + 8; // DT_REG, regular file. + } + (tempI64 = [id>>>0,(tempDouble=id,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((dirp + pos)>>2)] = tempI64[0],HEAP32[(((dirp + pos)+(4))>>2)] = tempI64[1]); + (tempI64 = [(idx + 1) * struct_size>>>0,(tempDouble=(idx + 1) * struct_size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((dirp + pos)+(8))>>2)] = tempI64[0],HEAP32[(((dirp + pos)+(12))>>2)] = tempI64[1]); + HEAP16[(((dirp + pos)+(16))>>1)] = 280; + HEAP8[(((dirp + pos)+(18))>>0)] = type; + stringToUTF8(name, dirp + pos + 19, 256); + pos += struct_size; + idx += 1; + } + FS.llseek(stream, idx * struct_size, 0); + return pos; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: return -28; // not supported + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_lstat64(path, buf) { + try { + + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.lstat, path, buf); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_newfstatat(dirfd, path, buf, flags) { + try { + + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & (~6400); + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_readlinkat(dirfd, path, buf, bufsize) { + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + return len; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_stat64(path, buf) { + try { + + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.stat, path, buf); + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function ___syscall_unlinkat(dirfd, path, flags) { + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (flags === 0) { + FS.unlink(path); + } else if (flags === 512) { + FS.rmdir(path); + } else { + abort('Invalid flags passed to unlinkat'); + } + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + var nowIsMonotonic = true;; + function __emscripten_get_now_is_monotonic() { + return nowIsMonotonic; + } + + function readI53FromI64(ptr) { + return HEAPU32[ptr>>2] + HEAP32[ptr+4>>2] * 4294967296; + } + + function __isLeapYear(year) { + return year%4 === 0 && (year%100 !== 0 || year%400 === 0); + } + + var __MONTH_DAYS_LEAP_CUMULATIVE = [0,31,60,91,121,152,182,213,244,274,305,335]; + + var __MONTH_DAYS_REGULAR_CUMULATIVE = [0,31,59,90,120,151,181,212,243,273,304,334]; + function __yday_from_date(date) { + var isLeapYear = __isLeapYear(date.getFullYear()); + var monthDaysCumulative = (isLeapYear ? __MONTH_DAYS_LEAP_CUMULATIVE : __MONTH_DAYS_REGULAR_CUMULATIVE); + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; // -1 since it's days since Jan 1 + + return yday; + } + function __localtime_js(time, tmPtr) { + var date = new Date(readI53FromI64(time)*1000); + HEAP32[((tmPtr)>>2)] = date.getSeconds(); + HEAP32[(((tmPtr)+(4))>>2)] = date.getMinutes(); + HEAP32[(((tmPtr)+(8))>>2)] = date.getHours(); + HEAP32[(((tmPtr)+(12))>>2)] = date.getDate(); + HEAP32[(((tmPtr)+(16))>>2)] = date.getMonth(); + HEAP32[(((tmPtr)+(20))>>2)] = date.getFullYear()-1900; + HEAP32[(((tmPtr)+(24))>>2)] = date.getDay(); + + var yday = __yday_from_date(date)|0; + HEAP32[(((tmPtr)+(28))>>2)] = yday; + HEAP32[(((tmPtr)+(36))>>2)] = -(date.getTimezoneOffset() * 60); + + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0; + HEAP32[(((tmPtr)+(32))>>2)] = dst; + } + + + + function __mmap_js(len, prot, flags, fd, off, allocated, addr) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var res = FS.mmap(stream, len, off, prot, flags); + var ptr = res.ptr; + HEAP32[((allocated)>>2)] = res.allocated; + HEAPU32[((addr)>>2)] = ptr; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + + + function __munmap_js(addr, len, prot, flags, fd, offset) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + if (prot & 2) { + SYSCALLS.doMsync(addr, stream, len, flags, offset); + } + FS.munmap(stream); + // implicitly return 0 + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + function __tzset_js(timezone, daylight, tzname) { + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = new Date().getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + + // Local standard timezone offset. Local standard time is not adjusted for daylight savings. + // This code uses the fact that getTimezoneOffset returns a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it compares whether the output of the given date the same (Standard) or less (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + HEAPU32[((timezone)>>2)] = stdTimezoneOffset * 60; + + HEAP32[((daylight)>>2)] = Number(winterOffset != summerOffset); + + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + }; + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocateUTF8(winterName); + var summerNamePtr = allocateUTF8(summerName); + if (summerOffset < winterOffset) { + // Northern hemisphere + HEAPU32[((tzname)>>2)] = winterNamePtr; + HEAPU32[(((tzname)+(4))>>2)] = summerNamePtr; + } else { + HEAPU32[((tzname)>>2)] = summerNamePtr; + HEAPU32[(((tzname)+(4))>>2)] = winterNamePtr; + } + } + + function _abort() { + abort(''); + } + + var DOTNETENTROPY = {getBatchedRandomValues:function (buffer, bufferLength) { + // batchedQuotaMax is the max number of bytes as specified by the api spec. + // If the byteLength of array is greater than 65536, throw a QuotaExceededError and terminate the algorithm. + // https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues + const batchedQuotaMax = 65536; + + // Chrome doesn't want SharedArrayBuffer to be passed to crypto APIs + const needTempBuf = typeof SharedArrayBuffer !== 'undefined' && Module.HEAPU8.buffer instanceof SharedArrayBuffer; + // if we need a temporary buffer, make one that is big enough and write into it from the beginning + // otherwise, use the wasm instance memory and write at the given 'buffer' pointer offset. + const buf = needTempBuf ? new ArrayBuffer(bufferLength) : Module.HEAPU8.buffer; + const offset = needTempBuf ? 0 : buffer; + // for modern web browsers + // map the work array to the memory buffer passed with the length + for (let i = 0; i < bufferLength; i += batchedQuotaMax) { + const view = new Uint8Array(buf, offset + i, Math.min(bufferLength - i, batchedQuotaMax)); + crypto.getRandomValues(view) + } + if (needTempBuf) { + // copy data out of the temporary buffer into the wasm instance memory + const heapView = new Uint8Array(Module.HEAPU8.buffer, buffer, bufferLength); + heapView.set(new Uint8Array(buf)); + } + }}; + function _dotnet_browser_entropy(buffer, bufferLength) { + // check that we have crypto available + if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') { + DOTNETENTROPY.getBatchedRandomValues(buffer, bufferLength) + return 0; + } else { + // we couldn't find a proper implementation, as Math.random() is not suitable + // instead of aborting here we will return and let managed code handle the message + return -1; + } + } + + function _emscripten_date_now() { + return Date.now(); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + function _emscripten_get_heap_max() { + return getHeapMax(); + } + + var _emscripten_get_now;if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = () => { + var t = process.hrtime(); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow != 'undefined') { + _emscripten_get_now = dateNow; + } else _emscripten_get_now = () => performance.now(); + ; + + function _emscripten_get_now_res() { // return resolution of get_now, in nanoseconds + if (ENVIRONMENT_IS_NODE) { + return 1; // nanoseconds + } else + if (typeof dateNow != 'undefined') { + return 1000; // microseconds (1/1000 of a millisecond) + } else + // Modern environment where performance.now() is supported: + return 1000; // microseconds (1/1000 of a millisecond) + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + + function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow((size - b.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1 /*success*/; + } catch(e) { + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + + let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + + return true; + } + } + return false; + } + + var ENV = {}; + + function getExecutableName() { + return thisProgram || './this.program'; + } + function getEnvStrings() { + if (!getEnvStrings.strings) { + // Default values. + // Browser language detection #8751 + var lang = ((typeof navigator == 'object' && navigator.languages && navigator.languages[0]) || 'C').replace('-', '_') + '.UTF-8'; + var env = { + 'USER': 'web_user', + 'LOGNAME': 'web_user', + 'PATH': '/', + 'PWD': '/', + 'HOME': '/home/web_user', + 'LANG': lang, + '_': getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + '=' + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + } + + /** @param {boolean=} dontAddNull */ + function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + HEAP8[((buffer++)>>0)] = str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)] = 0; + } + + function _environ_get(__environ, environ_buf) { + var bufSize = 0; + getEnvStrings().forEach(function(string, i) { + var ptr = environ_buf + bufSize; + HEAPU32[(((__environ)+(i*4))>>2)] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1; + }); + return 0; + } + + + function _environ_sizes_get(penviron_count, penviron_buf_size) { + var strings = getEnvStrings(); + HEAPU32[((penviron_count)>>2)] = strings.length; + var bufSize = 0; + strings.forEach(function(string) { + bufSize += string.length + 1; + }); + HEAPU32[((penviron_buf_size)>>2)] = bufSize; + return 0; + } + + + function _proc_exit(code) { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + if (Module['onExit']) Module['onExit'](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + } + /** @param {boolean|number=} implicit */ + function exitJS(status, implicit) { + EXITSTATUS = status; + + _proc_exit(status); + } + var _exit = exitJS; + + function _fd_close(fd) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov)>>2)]; + var len = HEAPU32[(((iov)+(4))>>2)]; + iov += 8; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + } + + + + + + function _fd_pread(fd, iov, iovcnt, /** @type {!BigInt} */ offset, pnum) { + try { + + offset = bigintToI53Checked(offset); if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd) + var num = doReadv(stream, iov, iovcnt, offset); + HEAPU32[((pnum)>>2)] = num; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + + function _fd_read(fd, iov, iovcnt, pnum) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[((pnum)>>2)] = num; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + + + + + function _fd_seek(fd, /** @type {!BigInt} */ offset, whence, newOffset) { + try { + + offset = bigintToI53Checked(offset); if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov)>>2)]; + var len = HEAPU32[(((iov)+(4))>>2)]; + iov += 8; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + } + + function _fd_write(fd, iov, iovcnt, pnum) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[((pnum)>>2)] = num; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + var DOTNET = {setup:function setup(linkerSetup) { + const pthreadReplacements = {}; + const dotnet_replacements = { + fetch: globalThis.fetch, + require, + updateMemoryViews, + pthreadReplacements, + scriptDirectory, + noExitRuntime + }; + // USE_PTHREADS is emscripten's define symbol, which is passed to acorn optimizer, so we could use it here + const ENVIRONMENT_IS_PTHREAD = false; + + Module.__dotnet_runtime.passEmscriptenInternals({ + isPThread: ENVIRONMENT_IS_PTHREAD, + quit_, ExitStatus, + ...linkerSetup + }); + Module.__dotnet_runtime.initializeReplacements(dotnet_replacements); + + Module.__dotnet_runtime.configureEmscriptenStartup(Module); + + updateMemoryViews = dotnet_replacements.updateMemoryViews; + noExitRuntime = dotnet_replacements.noExitRuntime; + fetch = dotnet_replacements.fetch; + require = dotnet_replacements.require; + _scriptDir = __dirname = scriptDirectory = dotnet_replacements.scriptDirectory; + }}; + function _mono_interp_flush_jitcall_queue( + ) { + return {runtime_idx:12};//mono_interp_flush_jitcall_queue + } + + function _mono_interp_invoke_wasm_jit_call_trampoline( + ) { + return {runtime_idx:11};//mono_interp_invoke_wasm_jit_call_trampoline + } + + function _mono_interp_jit_wasm_entry_trampoline( + ) { + return {runtime_idx:9};//mono_interp_jit_wasm_entry_trampoline + } + + function _mono_interp_jit_wasm_jit_call_trampoline( + ) { + return {runtime_idx:10};//mono_interp_jit_wasm_jit_call_trampoline + } + + function _mono_interp_record_interp_entry( + ) { + return {runtime_idx:8};//mono_interp_record_interp_entry + } + + function _mono_interp_tier_prepare_jiterpreter( + ) { + return {runtime_idx:7};//mono_interp_tier_prepare_jiterpreter + } + + function _mono_jiterp_do_jit_call_indirect( + ) { + return {runtime_idx:13};//mono_jiterp_do_jit_call_indirect + } + + function _mono_wasm_bind_cs_function( + ) { + return {runtime_idx:23};//mono_wasm_bind_cs_function + } + + function _mono_wasm_bind_js_function( + ) { + return {runtime_idx:20};//mono_wasm_bind_js_function + } + + function _mono_wasm_change_case( + ) { + return {runtime_idx:26};//mono_wasm_change_case + } + + function _mono_wasm_change_case_invariant( + ) { + return {runtime_idx:25};//mono_wasm_change_case_invariant + } + + function _mono_wasm_compare_string( + ) { + return {runtime_idx:27};//mono_wasm_compare_string + } + + function _mono_wasm_create_cs_owned_object_ref( + ) { + return {runtime_idx:41};//mono_wasm_create_cs_owned_object_ref + } + + function _mono_wasm_ends_with( + ) { + return {runtime_idx:29};//mono_wasm_ends_with + } + + function _mono_wasm_get_by_index_ref( + ) { + return {runtime_idx:38};//mono_wasm_get_by_index_ref + } + + function _mono_wasm_get_calendar_info( + ) { + return {runtime_idx:31};//mono_wasm_get_calendar_info + } + + function _mono_wasm_get_culture_info( + ) { + return {runtime_idx:32};//mono_wasm_get_culture_info + } + + function _mono_wasm_get_first_day_of_week( + ) { + return {runtime_idx:33};//mono_wasm_get_first_day_of_week + } + + function _mono_wasm_get_first_week_of_year( + ) { + return {runtime_idx:34};//mono_wasm_get_first_week_of_year + } + + function _mono_wasm_get_global_object_ref( + ) { + return {runtime_idx:40};//mono_wasm_get_global_object_ref + } + + function _mono_wasm_get_object_property_ref( + ) { + return {runtime_idx:36};//mono_wasm_get_object_property_ref + } + + function _mono_wasm_index_of( + ) { + return {runtime_idx:30};//mono_wasm_index_of + } + + function _mono_wasm_invoke_bound_function( + ) { + return {runtime_idx:21};//mono_wasm_invoke_bound_function + } + + function _mono_wasm_invoke_import( + ) { + return {runtime_idx:22};//mono_wasm_invoke_import + } + + function _mono_wasm_invoke_js_blazor( + ) { + return {runtime_idx:44};//mono_wasm_invoke_js_blazor + } + + function _mono_wasm_invoke_js_with_args_ref( + ) { + return {runtime_idx:35};//mono_wasm_invoke_js_with_args_ref + } + + function _mono_wasm_marshal_promise( + ) { + return {runtime_idx:24};//mono_wasm_marshal_promise + } + + function _mono_wasm_release_cs_owned_object( + ) { + return {runtime_idx:19};//mono_wasm_release_cs_owned_object + } + + function _mono_wasm_schedule_timer( + ) { + return {runtime_idx:0};//mono_wasm_schedule_timer + } + + function _mono_wasm_set_by_index_ref( + ) { + return {runtime_idx:39};//mono_wasm_set_by_index_ref + } + + function _mono_wasm_set_entrypoint_breakpoint( + ) { + return {runtime_idx:17};//mono_wasm_set_entrypoint_breakpoint + } + + function _mono_wasm_set_object_property_ref( + ) { + return {runtime_idx:37};//mono_wasm_set_object_property_ref + } + + function _mono_wasm_starts_with( + ) { + return {runtime_idx:28};//mono_wasm_starts_with + } + + function _mono_wasm_trace_logger( + ) { + return {runtime_idx:16};//mono_wasm_trace_logger + } + + function _mono_wasm_typed_array_from_ref( + ) { + return {runtime_idx:43};//mono_wasm_typed_array_from_ref + } + + function _mono_wasm_typed_array_to_array_ref( + ) { + return {runtime_idx:42};//mono_wasm_typed_array_to_array_ref + } + + function _schedule_background_exec( + ) { + return {runtime_idx:6};//schedule_background_exec + } + + + function __arraySum(array, index) { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) { + // no-op + } + return sum; + } + + + var __MONTH_DAYS_LEAP = [31,29,31,30,31,30,31,31,30,31,30,31]; + + var __MONTH_DAYS_REGULAR = [31,28,31,30,31,30,31,31,30,31,30,31]; + function __addDays(date, days) { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = __isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + + if (days > daysInCurrentMonth-newDate.getDate()) { + // we spill over to next month + days -= (daysInCurrentMonth-newDate.getDate()+1); + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth+1) + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear()+1); + } + } else { + // we stay in current month + newDate.setDate(newDate.getDate()+days); + return newDate; + } + } + + return newDate; + } + + + + + function writeArrayToMemory(array, buffer) { + HEAP8.set(array, buffer); + } + function _strftime(s, maxsize, format, tm) { + // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html + + var tm_zone = HEAP32[(((tm)+(40))>>2)]; + + var date = { + tm_sec: HEAP32[((tm)>>2)], + tm_min: HEAP32[(((tm)+(4))>>2)], + tm_hour: HEAP32[(((tm)+(8))>>2)], + tm_mday: HEAP32[(((tm)+(12))>>2)], + tm_mon: HEAP32[(((tm)+(16))>>2)], + tm_year: HEAP32[(((tm)+(20))>>2)], + tm_wday: HEAP32[(((tm)+(24))>>2)], + tm_yday: HEAP32[(((tm)+(28))>>2)], + tm_isdst: HEAP32[(((tm)+(32))>>2)], + tm_gmtoff: HEAP32[(((tm)+(36))>>2)], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : '' + }; + + var pattern = UTF8ToString(format); + + // expand format + var EXPANSION_RULES_1 = { + '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 + '%D': '%m/%d/%y', // Equivalent to %m / %d / %y + '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d + '%h': '%b', // Equivalent to %b + '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation + '%R': '%H:%M', // Replaced by the time in 24-hour notation + '%T': '%H:%M:%S', // Replaced by the time + '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation + '%X': '%H:%M:%S', // Replaced by the locale's appropriate time representation + // Modified Conversion Specifiers + '%Ec': '%c', // Replaced by the locale's alternative appropriate date and time representation. + '%EC': '%C', // Replaced by the name of the base year (period) in the locale's alternative representation. + '%Ex': '%m/%d/%y', // Replaced by the locale's alternative date representation. + '%EX': '%H:%M:%S', // Replaced by the locale's alternative time representation. + '%Ey': '%y', // Replaced by the offset from %EC (year only) in the locale's alternative representation. + '%EY': '%Y', // Replaced by the full alternative year representation. + '%Od': '%d', // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading zeros if there is any alternative symbol for zero; otherwise, with leading characters. + '%Oe': '%e', // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading characters. + '%OH': '%H', // Replaced by the hour (24-hour clock) using the locale's alternative numeric symbols. + '%OI': '%I', // Replaced by the hour (12-hour clock) using the locale's alternative numeric symbols. + '%Om': '%m', // Replaced by the month using the locale's alternative numeric symbols. + '%OM': '%M', // Replaced by the minutes using the locale's alternative numeric symbols. + '%OS': '%S', // Replaced by the seconds using the locale's alternative numeric symbols. + '%Ou': '%u', // Replaced by the weekday as a number in the locale's alternative representation (Monday=1). + '%OU': '%U', // Replaced by the week number of the year (Sunday as the first day of the week, rules corresponding to %U ) using the locale's alternative numeric symbols. + '%OV': '%V', // Replaced by the week number of the year (Monday as the first day of the week, rules corresponding to %V ) using the locale's alternative numeric symbols. + '%Ow': '%w', // Replaced by the number of the weekday (Sunday=0) using the locale's alternative numeric symbols. + '%OW': '%W', // Replaced by the week number of the year (Monday as the first day of the week) using the locale's alternative numeric symbols. + '%Oy': '%y', // Replaced by the year (offset from %C ) using the locale's alternative numeric symbols. + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]); + } + + var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + + function leadingSomething(value, digits, character) { + var str = typeof value == 'number' ? value.toString() : (value || ''); + while (str.length < digits) { + str = character[0]+str; + } + return str; + } + + function leadingNulls(value, digits) { + return leadingSomething(value, digits, '0'); + } + + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : (value > 0 ? 1 : 0); + } + + var compare; + if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) { + compare = sgn(date1.getDate()-date2.getDate()); + } + } + return compare; + } + + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: // Sunday + return new Date(janFourth.getFullYear()-1, 11, 29); + case 1: // Monday + return janFourth; + case 2: // Tuesday + return new Date(janFourth.getFullYear(), 0, 3); + case 3: // Wednesday + return new Date(janFourth.getFullYear(), 0, 2); + case 4: // Thursday + return new Date(janFourth.getFullYear(), 0, 1); + case 5: // Friday + return new Date(janFourth.getFullYear()-1, 11, 31); + case 6: // Saturday + return new Date(janFourth.getFullYear()-1, 11, 30); + } + } + + function getWeekBasedYear(date) { + var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); + + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4); + + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + // this date is after the start of the first week of this year + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear()+1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear()-1; + } + + var EXPANSION_RULES_2 = { + '%a': function(date) { + return WEEKDAYS[date.tm_wday].substring(0,3); + }, + '%A': function(date) { + return WEEKDAYS[date.tm_wday]; + }, + '%b': function(date) { + return MONTHS[date.tm_mon].substring(0,3); + }, + '%B': function(date) { + return MONTHS[date.tm_mon]; + }, + '%C': function(date) { + var year = date.tm_year+1900; + return leadingNulls((year/100)|0,2); + }, + '%d': function(date) { + return leadingNulls(date.tm_mday, 2); + }, + '%e': function(date) { + return leadingSomething(date.tm_mday, 2, ' '); + }, + '%g': function(date) { + // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year. + // In this system, weeks begin on a Monday and week 1 of the year is the week that includes + // January 4th, which is also the week that includes the first Thursday of the year, and + // is also the first week that contains at least four days in the year. + // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of + // the last week of the preceding year; thus, for Saturday 2nd January 1999, + // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th, + // or 31st is a Monday, it and any following days are part of week 1 of the following year. + // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01. + + return getWeekBasedYear(date).toString().substring(2); + }, + '%G': function(date) { + return getWeekBasedYear(date); + }, + '%H': function(date) { + return leadingNulls(date.tm_hour, 2); + }, + '%I': function(date) { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; + else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + '%j': function(date) { + // Day of the year (001-366) + return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3); + }, + '%m': function(date) { + return leadingNulls(date.tm_mon+1, 2); + }, + '%M': function(date) { + return leadingNulls(date.tm_min, 2); + }, + '%n': function() { + return '\n'; + }, + '%p': function(date) { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return 'AM'; + } + return 'PM'; + }, + '%S': function(date) { + return leadingNulls(date.tm_sec, 2); + }, + '%t': function() { + return '\t'; + }, + '%u': function(date) { + return date.tm_wday || 7; + }, + '%U': function(date) { + var days = date.tm_yday + 7 - date.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + '%V': function(date) { + // Replaced by the week number of the year (Monday as the first day of the week) + // as a decimal number [01,53]. If the week containing 1 January has four + // or more days in the new year, then it is considered week 1. + // Otherwise, it is the last week of the previous year, and the next week is week 1. + // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday] + var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7 ) / 7); + // If 1 Jan is just 1-3 days past Monday, the previous week + // is also in this year. + if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + // If 31 December of prev year a Thursday, or Friday of a + // leap year, then the prev year has 53 weeks. + var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; + if (dec31 == 4 || (dec31 == 5 && __isLeapYear(date.tm_year%400-1))) { + val++; + } + } else if (val == 53) { + // If 1 January is not a Thursday, and not a Wednesday of a + // leap year, then this year has only 52 weeks. + var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date.tm_year))) + val = 1; + } + return leadingNulls(val, 2); + }, + '%w': function(date) { + return date.tm_wday; + }, + '%W': function(date) { + var days = date.tm_yday + 7 - ((date.tm_wday + 6) % 7); + return leadingNulls(Math.floor(days / 7), 2); + }, + '%y': function(date) { + // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year] + return (date.tm_year+1900).toString().substring(2); + }, + '%Y': function(date) { + // Replaced by the year as a decimal number (for example, 1997). [ tm_year] + return date.tm_year+1900; + }, + '%z': function(date) { + // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ). + // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + // convert from minutes into hhmm format (which means 60 minutes = 100 units) + off = (off / 60)*100 + (off % 60); + return (ahead ? '+' : '-') + String("0000" + off).slice(-4); + }, + '%Z': function(date) { + return date.tm_zone; + }, + '%%': function() { + return '%'; + } + }; + + // Replace %% with a pair of NULLs (which cannot occur in a C string), then + // re-inject them after processing. + pattern = pattern.replace(/%%/g, '\0\0') + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, '%') + + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + + writeArrayToMemory(bytes, s); + return bytes.length-1; + } + + + + function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + return func; + } + + + /** + * @param {string|null=} returnType + * @param {Array=} argTypes + * @param {Arguments|Array=} args + * @param {Object=} opts + */ + function ccall(ident, returnType, argTypes, args, opts) { + // For fast lookup of conversion functions + var toC = { + 'string': (str) => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + }, + 'array': (arr) => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + + function convertReturnValue(ret) { + if (returnType === 'string') { + + return UTF8ToString(ret); + } + if (returnType === 'boolean') return Boolean(ret); + return ret; + } + + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + function onDone(ret) { + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + + ret = onDone(ret); + return ret; + } + + + + /** + * @param {string=} returnType + * @param {Array=} argTypes + * @param {Object=} opts + */ + function cwrap(ident, returnType, argTypes, opts) { + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = !argTypes || argTypes.every((type) => type === 'number' || type === 'boolean'); + var numericRet = returnType !== 'string'; + if (numericRet && numericArgs && !opts) { + return getCFunc(ident); + } + return function() { + return ccall(ident, returnType, argTypes, arguments, opts); + } + } + + + + function uleb128Encode(n, target) { + if (n < 128) { + target.push(n); + } else { + target.push((n % 128) | 128, n >> 7); + } + } + + function sigToWasmTypes(sig) { + var typeNames = { + 'i': 'i32', + // i64 values will be split into two i32s. + 'j': 'i32', + 'f': 'f32', + 'd': 'f64', + 'p': 'i32', + }; + var type = { + parameters: [], + results: sig[0] == 'v' ? [] : [typeNames[sig[0]]] + }; + for (var i = 1; i < sig.length; ++i) { + type.parameters.push(typeNames[sig[i]]); + if (sig[i] === 'j') { + type.parameters.push('i32'); + } + } + return type; + } + + function generateFuncType(sig, target){ + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = { + 'i': 0x7f, // i32 + 'p': 0x7f, // i32 + 'j': 0x7e, // i64 + 'f': 0x7d, // f32 + 'd': 0x7c, // f64 + }; + + // Parameters, length + signatures + target.push(0x60 /* form: func */); + uleb128Encode(sigParam.length, target); + for (var i = 0; i < sigParam.length; ++i) { + target.push(typeCodes[sigParam[i]]); + } + + // Return values, length + signatures + // With no multi-return in MVP, either 0 (void) or 1 (anything else) + if (sigRet == 'v') { + target.push(0x00); + } else { + target.push(0x01, typeCodes[sigRet]); + } + } + function convertJsFunctionToWasm(func, sig) { + + // If the type reflection proposal is available, use the new + // "WebAssembly.Function" constructor. + // Otherwise, construct a minimal wasm module importing the JS function and + // re-exporting it. + if (typeof WebAssembly.Function == "function") { + return new WebAssembly.Function(sigToWasmTypes(sig), func); + } + + // The module is static, with the exception of the type section, which is + // generated based on the signature passed in. + var typeSectionBody = [ + 0x01, // count: 1 + ]; + generateFuncType(sig, typeSectionBody); + + // Rest of the module is static + var bytes = [ + 0x00, 0x61, 0x73, 0x6d, // magic ("\0asm") + 0x01, 0x00, 0x00, 0x00, // version: 1 + 0x01, // Type section code + ]; + // Write the overall length of the type section followed by the body + uleb128Encode(typeSectionBody.length, bytes); + bytes.push.apply(bytes, typeSectionBody); + + // The rest of the module is static + bytes.push( + 0x02, 0x07, // import section + // (import "e" "f" (func 0 (type 0))) + 0x01, 0x01, 0x65, 0x01, 0x66, 0x00, 0x00, + 0x07, 0x05, // export section + // (export "f" (func 0 (type 0))) + 0x01, 0x01, 0x66, 0x00, 0x00, + ); + + // We can compile this wasm module synchronously because it is very small. + // This accepts an import (at "e.f"), that it reroutes to an export (at "f") + var module = new WebAssembly.Module(new Uint8Array(bytes)); + var instance = new WebAssembly.Instance(module, { 'e': { 'f': func } }); + var wrappedFunc = instance.exports['f']; + return wrappedFunc; + } + + var wasmTableMirror = []; + + function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; + } + + function updateTableMap(offset, count) { + if (functionsInTableMap) { + for (var i = offset; i < offset + count; i++) { + var item = getWasmTableEntry(i); + // Ignore null values. + if (item) { + functionsInTableMap.set(item, i); + } + } + } + } + + var functionsInTableMap = undefined; + function getFunctionAddress(func) { + // First, create the map if this is the first use. + if (!functionsInTableMap) { + functionsInTableMap = new WeakMap(); + updateTableMap(0, wasmTable.length); + } + return functionsInTableMap.get(func) || 0; + } + + + var freeTableIndexes = []; + function getEmptyTableSlot() { + // Reuse a free index if there is one, otherwise grow. + if (freeTableIndexes.length) { + return freeTableIndexes.pop(); + } + // Grow the table + try { + wasmTable.grow(1); + } catch (err) { + if (!(err instanceof RangeError)) { + throw err; + } + throw 'Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.'; + } + return wasmTable.length - 1; + } + + + function setWasmTableEntry(idx, func) { + wasmTable.set(idx, func); + // With ABORT_ON_WASM_EXCEPTIONS wasmTable.get is overriden to return wrapped + // functions so we need to call it here to retrieve the potential wrapper correctly + // instead of just storing 'func' directly into wasmTableMirror + wasmTableMirror[idx] = wasmTable.get(idx); + } + /** @param {string=} sig */ + function addFunction(func, sig) { + // Check if the function is already in the table, to ensure each function + // gets a unique index. + var rtn = getFunctionAddress(func); + if (rtn) { + return rtn; + } + + // It's not in the table, add it now. + + var ret = getEmptyTableSlot(); + + // Set the new value. + try { + // Attempting to call this with JS function will cause of table.set() to fail + setWasmTableEntry(ret, func); + } catch (err) { + if (!(err instanceof TypeError)) { + throw err; + } + var wrapped = convertJsFunctionToWasm(func, sig); + setWasmTableEntry(ret, wrapped); + } + + functionsInTableMap.set(func, ret); + + return ret; + } + + function handleException(e) { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == 'unwind') { + return EXITSTATUS; + } + quit_(1, e); + } + + + function maybeExit() { + if (!keepRuntimeAlive()) { + try { + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } + } + function callUserCallback(func) { + if (ABORT) { + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } + } + /** @param {number=} timeout */ + function safeSetTimeout(func, timeout) { + + return setTimeout(function() { + + callUserCallback(func); + }, timeout); + } + + function runtimeKeepalivePush() { + runtimeKeepaliveCounter += 1; + } + + function runtimeKeepalivePop() { + runtimeKeepaliveCounter -= 1; + } + + + var FSNode = /** @constructor */ function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292/*292*/ | 73/*73*/; + var writeMode = 146/*146*/; + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */function() { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } + }, + write: { + get: /** @this{FSNode} */function() { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } + }, + isFolder: { + get: /** @this{FSNode} */function() { + return FS.isDir(this.mode); + } + }, + isDevice: { + get: /** @this{FSNode} */function() { + return FS.isChrdev(this.mode); + } + } + }); + FS.FSNode = FSNode; + FS.staticInit();Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_unlink"] = FS.unlink;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createDevice"] = FS.createDevice;; +DOTNET.setup({ linkerDisableLegacyJsInterop: false,linkerWasmEnableSIMD: true,linkerWasmEnableEH: true,linkerEnableAotProfiler: false, linkerEnableBrowserProfiler: false, gitHash: "0b25e38ad32a69cd83ae246104b32449203cc71c", });; +// include: base64Utils.js +// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 + +// This code was written by Tyler Akins and has been placed in the +// public domain. It would be nice if you left this header intact. +// Base64 code from Tyler Akins -- http://rumkin.com + +/** + * Decodes a base64 string. + * @param {string} input The string to decode. + */ +var decodeBase64 = typeof atob == 'function' ? atob : function (input) { + var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + + var output = ''; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + // remove all characters that are not A-Z, a-z, 0-9, +, /, or = + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + do { + enc1 = keyStr.indexOf(input.charAt(i++)); + enc2 = keyStr.indexOf(input.charAt(i++)); + enc3 = keyStr.indexOf(input.charAt(i++)); + enc4 = keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 !== 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 !== 64) { + output = output + String.fromCharCode(chr3); + } + } while (i < input.length); + return output; +}; + +// Converts a string of base64 into a byte array. +// Throws error on invalid input. +function intArrayFromBase64(s) { + if (typeof ENVIRONMENT_IS_NODE == 'boolean' && ENVIRONMENT_IS_NODE) { + var buf = Buffer.from(s, 'base64'); + return new Uint8Array(buf['buffer'], buf['byteOffset'], buf['byteLength']); + } + + try { + var decoded = decodeBase64(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0 ; i < decoded.length ; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } catch (_) { + throw new Error('Converting base64 string to bytes failed.'); + } +} + +// If filename is a base64 data URI, parses and returns data (Buffer on node, +// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. +function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); +} + + +// end include: base64Utils.js +var wasmImports = { + "__assert_fail": ___assert_fail, + "__syscall_faccessat": ___syscall_faccessat, + "__syscall_fadvise64": ___syscall_fadvise64, + "__syscall_fcntl64": ___syscall_fcntl64, + "__syscall_fstat64": ___syscall_fstat64, + "__syscall_fstatfs64": ___syscall_fstatfs64, + "__syscall_ftruncate64": ___syscall_ftruncate64, + "__syscall_getcwd": ___syscall_getcwd, + "__syscall_getdents64": ___syscall_getdents64, + "__syscall_ioctl": ___syscall_ioctl, + "__syscall_lstat64": ___syscall_lstat64, + "__syscall_newfstatat": ___syscall_newfstatat, + "__syscall_openat": ___syscall_openat, + "__syscall_readlinkat": ___syscall_readlinkat, + "__syscall_stat64": ___syscall_stat64, + "__syscall_unlinkat": ___syscall_unlinkat, + "_emscripten_get_now_is_monotonic": __emscripten_get_now_is_monotonic, + "_localtime_js": __localtime_js, + "_mmap_js": __mmap_js, + "_munmap_js": __munmap_js, + "_tzset_js": __tzset_js, + "abort": _abort, + "dotnet_browser_entropy": _dotnet_browser_entropy, + "emscripten_date_now": _emscripten_date_now, + "emscripten_get_heap_max": _emscripten_get_heap_max, + "emscripten_get_now": _emscripten_get_now, + "emscripten_get_now_res": _emscripten_get_now_res, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "environ_get": _environ_get, + "environ_sizes_get": _environ_sizes_get, + "exit": _exit, + "fd_close": _fd_close, + "fd_pread": _fd_pread, + "fd_read": _fd_read, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "mono_interp_flush_jitcall_queue": _mono_interp_flush_jitcall_queue, + "mono_interp_invoke_wasm_jit_call_trampoline": _mono_interp_invoke_wasm_jit_call_trampoline, + "mono_interp_jit_wasm_entry_trampoline": _mono_interp_jit_wasm_entry_trampoline, + "mono_interp_jit_wasm_jit_call_trampoline": _mono_interp_jit_wasm_jit_call_trampoline, + "mono_interp_record_interp_entry": _mono_interp_record_interp_entry, + "mono_interp_tier_prepare_jiterpreter": _mono_interp_tier_prepare_jiterpreter, + "mono_jiterp_do_jit_call_indirect": _mono_jiterp_do_jit_call_indirect, + "mono_wasm_bind_cs_function": _mono_wasm_bind_cs_function, + "mono_wasm_bind_js_function": _mono_wasm_bind_js_function, + "mono_wasm_change_case": _mono_wasm_change_case, + "mono_wasm_change_case_invariant": _mono_wasm_change_case_invariant, + "mono_wasm_compare_string": _mono_wasm_compare_string, + "mono_wasm_create_cs_owned_object_ref": _mono_wasm_create_cs_owned_object_ref, + "mono_wasm_ends_with": _mono_wasm_ends_with, + "mono_wasm_get_by_index_ref": _mono_wasm_get_by_index_ref, + "mono_wasm_get_calendar_info": _mono_wasm_get_calendar_info, + "mono_wasm_get_culture_info": _mono_wasm_get_culture_info, + "mono_wasm_get_first_day_of_week": _mono_wasm_get_first_day_of_week, + "mono_wasm_get_first_week_of_year": _mono_wasm_get_first_week_of_year, + "mono_wasm_get_global_object_ref": _mono_wasm_get_global_object_ref, + "mono_wasm_get_object_property_ref": _mono_wasm_get_object_property_ref, + "mono_wasm_index_of": _mono_wasm_index_of, + "mono_wasm_invoke_bound_function": _mono_wasm_invoke_bound_function, + "mono_wasm_invoke_import": _mono_wasm_invoke_import, + "mono_wasm_invoke_js_blazor": _mono_wasm_invoke_js_blazor, + "mono_wasm_invoke_js_with_args_ref": _mono_wasm_invoke_js_with_args_ref, + "mono_wasm_marshal_promise": _mono_wasm_marshal_promise, + "mono_wasm_release_cs_owned_object": _mono_wasm_release_cs_owned_object, + "mono_wasm_schedule_timer": _mono_wasm_schedule_timer, + "mono_wasm_set_by_index_ref": _mono_wasm_set_by_index_ref, + "mono_wasm_set_entrypoint_breakpoint": _mono_wasm_set_entrypoint_breakpoint, + "mono_wasm_set_object_property_ref": _mono_wasm_set_object_property_ref, + "mono_wasm_starts_with": _mono_wasm_starts_with, + "mono_wasm_trace_logger": _mono_wasm_trace_logger, + "mono_wasm_typed_array_from_ref": _mono_wasm_typed_array_from_ref, + "mono_wasm_typed_array_to_array_ref": _mono_wasm_typed_array_to_array_ref, + "schedule_background_exec": _schedule_background_exec, + "strftime": _strftime +}; +var asm = createWasm(); +/** @type {function(...*):?} */ +var ___wasm_call_ctors = function() { + return (___wasm_call_ctors = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_register_root = Module["_mono_wasm_register_root"] = function() { + return (_mono_wasm_register_root = Module["_mono_wasm_register_root"] = Module["asm"]["mono_wasm_register_root"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_deregister_root = Module["_mono_wasm_deregister_root"] = function() { + return (_mono_wasm_deregister_root = Module["_mono_wasm_deregister_root"] = Module["asm"]["mono_wasm_deregister_root"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_add_assembly = Module["_mono_wasm_add_assembly"] = function() { + return (_mono_wasm_add_assembly = Module["_mono_wasm_add_assembly"] = Module["asm"]["mono_wasm_add_assembly"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_add_satellite_assembly = Module["_mono_wasm_add_satellite_assembly"] = function() { + return (_mono_wasm_add_satellite_assembly = Module["_mono_wasm_add_satellite_assembly"] = Module["asm"]["mono_wasm_add_satellite_assembly"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _malloc = Module["_malloc"] = function() { + return (_malloc = Module["_malloc"] = Module["asm"]["malloc"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_setenv = Module["_mono_wasm_setenv"] = function() { + return (_mono_wasm_setenv = Module["_mono_wasm_setenv"] = Module["asm"]["mono_wasm_setenv"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_getenv = Module["_mono_wasm_getenv"] = function() { + return (_mono_wasm_getenv = Module["_mono_wasm_getenv"] = Module["asm"]["mono_wasm_getenv"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _free = Module["_free"] = function() { + return (_free = Module["_free"] = Module["asm"]["free"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_load_runtime = Module["_mono_wasm_load_runtime"] = function() { + return (_mono_wasm_load_runtime = Module["_mono_wasm_load_runtime"] = Module["asm"]["mono_wasm_load_runtime"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_assembly_load = Module["_mono_wasm_assembly_load"] = function() { + return (_mono_wasm_assembly_load = Module["_mono_wasm_assembly_load"] = Module["asm"]["mono_wasm_assembly_load"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_corlib = Module["_mono_wasm_get_corlib"] = function() { + return (_mono_wasm_get_corlib = Module["_mono_wasm_get_corlib"] = Module["asm"]["mono_wasm_get_corlib"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_assembly_find_class = Module["_mono_wasm_assembly_find_class"] = function() { + return (_mono_wasm_assembly_find_class = Module["_mono_wasm_assembly_find_class"] = Module["asm"]["mono_wasm_assembly_find_class"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_runtime_run_module_cctor = Module["_mono_wasm_runtime_run_module_cctor"] = function() { + return (_mono_wasm_runtime_run_module_cctor = Module["_mono_wasm_runtime_run_module_cctor"] = Module["asm"]["mono_wasm_runtime_run_module_cctor"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_assembly_find_method = Module["_mono_wasm_assembly_find_method"] = function() { + return (_mono_wasm_assembly_find_method = Module["_mono_wasm_assembly_find_method"] = Module["asm"]["mono_wasm_assembly_find_method"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_invoke_method_ref = Module["_mono_wasm_invoke_method_ref"] = function() { + return (_mono_wasm_invoke_method_ref = Module["_mono_wasm_invoke_method_ref"] = Module["asm"]["mono_wasm_invoke_method_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_invoke_method_bound = Module["_mono_wasm_invoke_method_bound"] = function() { + return (_mono_wasm_invoke_method_bound = Module["_mono_wasm_invoke_method_bound"] = Module["asm"]["mono_wasm_invoke_method_bound"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_assembly_get_entry_point = Module["_mono_wasm_assembly_get_entry_point"] = function() { + return (_mono_wasm_assembly_get_entry_point = Module["_mono_wasm_assembly_get_entry_point"] = Module["asm"]["mono_wasm_assembly_get_entry_point"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_string_from_utf16_ref = Module["_mono_wasm_string_from_utf16_ref"] = function() { + return (_mono_wasm_string_from_utf16_ref = Module["_mono_wasm_string_from_utf16_ref"] = Module["asm"]["mono_wasm_string_from_utf16_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_typed_array_new_ref = Module["_mono_wasm_typed_array_new_ref"] = function() { + return (_mono_wasm_typed_array_new_ref = Module["_mono_wasm_typed_array_new_ref"] = Module["asm"]["mono_wasm_typed_array_new_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_delegate_invoke_ref = Module["_mono_wasm_get_delegate_invoke_ref"] = function() { + return (_mono_wasm_get_delegate_invoke_ref = Module["_mono_wasm_get_delegate_invoke_ref"] = Module["asm"]["mono_wasm_get_delegate_invoke_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_box_primitive_ref = Module["_mono_wasm_box_primitive_ref"] = function() { + return (_mono_wasm_box_primitive_ref = Module["_mono_wasm_box_primitive_ref"] = Module["asm"]["mono_wasm_box_primitive_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_type_name = Module["_mono_wasm_get_type_name"] = function() { + return (_mono_wasm_get_type_name = Module["_mono_wasm_get_type_name"] = Module["asm"]["mono_wasm_get_type_name"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_type_aqn = Module["_mono_wasm_get_type_aqn"] = function() { + return (_mono_wasm_get_type_aqn = Module["_mono_wasm_get_type_aqn"] = Module["asm"]["mono_wasm_get_type_aqn"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_try_unbox_primitive_and_get_type_ref = Module["_mono_wasm_try_unbox_primitive_and_get_type_ref"] = function() { + return (_mono_wasm_try_unbox_primitive_and_get_type_ref = Module["_mono_wasm_try_unbox_primitive_and_get_type_ref"] = Module["asm"]["mono_wasm_try_unbox_primitive_and_get_type_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_array_length_ref = Module["_mono_wasm_array_length_ref"] = function() { + return (_mono_wasm_array_length_ref = Module["_mono_wasm_array_length_ref"] = Module["asm"]["mono_wasm_array_length_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_array_get_ref = Module["_mono_wasm_array_get_ref"] = function() { + return (_mono_wasm_array_get_ref = Module["_mono_wasm_array_get_ref"] = Module["asm"]["mono_wasm_array_get_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_obj_array_new_ref = Module["_mono_wasm_obj_array_new_ref"] = function() { + return (_mono_wasm_obj_array_new_ref = Module["_mono_wasm_obj_array_new_ref"] = Module["asm"]["mono_wasm_obj_array_new_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_obj_array_new = Module["_mono_wasm_obj_array_new"] = function() { + return (_mono_wasm_obj_array_new = Module["_mono_wasm_obj_array_new"] = Module["asm"]["mono_wasm_obj_array_new"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_obj_array_set = Module["_mono_wasm_obj_array_set"] = function() { + return (_mono_wasm_obj_array_set = Module["_mono_wasm_obj_array_set"] = Module["asm"]["mono_wasm_obj_array_set"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_obj_array_set_ref = Module["_mono_wasm_obj_array_set_ref"] = function() { + return (_mono_wasm_obj_array_set_ref = Module["_mono_wasm_obj_array_set_ref"] = Module["asm"]["mono_wasm_obj_array_set_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_string_array_new_ref = Module["_mono_wasm_string_array_new_ref"] = function() { + return (_mono_wasm_string_array_new_ref = Module["_mono_wasm_string_array_new_ref"] = Module["asm"]["mono_wasm_string_array_new_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_exec_regression = Module["_mono_wasm_exec_regression"] = function() { + return (_mono_wasm_exec_regression = Module["_mono_wasm_exec_regression"] = Module["asm"]["mono_wasm_exec_regression"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_exit = Module["_mono_wasm_exit"] = function() { + return (_mono_wasm_exit = Module["_mono_wasm_exit"] = Module["asm"]["mono_wasm_exit"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_abort = Module["_mono_wasm_abort"] = function() { + return (_mono_wasm_abort = Module["_mono_wasm_abort"] = Module["asm"]["mono_wasm_abort"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_set_main_args = Module["_mono_wasm_set_main_args"] = function() { + return (_mono_wasm_set_main_args = Module["_mono_wasm_set_main_args"] = Module["asm"]["mono_wasm_set_main_args"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_strdup = Module["_mono_wasm_strdup"] = function() { + return (_mono_wasm_strdup = Module["_mono_wasm_strdup"] = Module["asm"]["mono_wasm_strdup"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_parse_runtime_options = Module["_mono_wasm_parse_runtime_options"] = function() { + return (_mono_wasm_parse_runtime_options = Module["_mono_wasm_parse_runtime_options"] = Module["asm"]["mono_wasm_parse_runtime_options"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_enable_on_demand_gc = Module["_mono_wasm_enable_on_demand_gc"] = function() { + return (_mono_wasm_enable_on_demand_gc = Module["_mono_wasm_enable_on_demand_gc"] = Module["asm"]["mono_wasm_enable_on_demand_gc"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_intern_string_ref = Module["_mono_wasm_intern_string_ref"] = function() { + return (_mono_wasm_intern_string_ref = Module["_mono_wasm_intern_string_ref"] = Module["asm"]["mono_wasm_intern_string_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_string_get_data_ref = Module["_mono_wasm_string_get_data_ref"] = function() { + return (_mono_wasm_string_get_data_ref = Module["_mono_wasm_string_get_data_ref"] = Module["asm"]["mono_wasm_string_get_data_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_class_get_type = Module["_mono_wasm_class_get_type"] = function() { + return (_mono_wasm_class_get_type = Module["_mono_wasm_class_get_type"] = Module["asm"]["mono_wasm_class_get_type"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_write_managed_pointer_unsafe = Module["_mono_wasm_write_managed_pointer_unsafe"] = function() { + return (_mono_wasm_write_managed_pointer_unsafe = Module["_mono_wasm_write_managed_pointer_unsafe"] = Module["asm"]["mono_wasm_write_managed_pointer_unsafe"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_copy_managed_pointer = Module["_mono_wasm_copy_managed_pointer"] = function() { + return (_mono_wasm_copy_managed_pointer = Module["_mono_wasm_copy_managed_pointer"] = Module["asm"]["mono_wasm_copy_managed_pointer"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_i52_to_f64 = Module["_mono_wasm_i52_to_f64"] = function() { + return (_mono_wasm_i52_to_f64 = Module["_mono_wasm_i52_to_f64"] = Module["asm"]["mono_wasm_i52_to_f64"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_u52_to_f64 = Module["_mono_wasm_u52_to_f64"] = function() { + return (_mono_wasm_u52_to_f64 = Module["_mono_wasm_u52_to_f64"] = Module["asm"]["mono_wasm_u52_to_f64"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_f64_to_u52 = Module["_mono_wasm_f64_to_u52"] = function() { + return (_mono_wasm_f64_to_u52 = Module["_mono_wasm_f64_to_u52"] = Module["asm"]["mono_wasm_f64_to_u52"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_f64_to_i52 = Module["_mono_wasm_f64_to_i52"] = function() { + return (_mono_wasm_f64_to_i52 = Module["_mono_wasm_f64_to_i52"] = Module["asm"]["mono_wasm_f64_to_i52"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_method_get_full_name = Module["_mono_wasm_method_get_full_name"] = function() { + return (_mono_wasm_method_get_full_name = Module["_mono_wasm_method_get_full_name"] = Module["asm"]["mono_wasm_method_get_full_name"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_method_get_name = Module["_mono_wasm_method_get_name"] = function() { + return (_mono_wasm_method_get_name = Module["_mono_wasm_method_get_name"] = Module["asm"]["mono_wasm_method_get_name"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_f32_unaligned = Module["_mono_wasm_get_f32_unaligned"] = function() { + return (_mono_wasm_get_f32_unaligned = Module["_mono_wasm_get_f32_unaligned"] = Module["asm"]["mono_wasm_get_f32_unaligned"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_f64_unaligned = Module["_mono_wasm_get_f64_unaligned"] = function() { + return (_mono_wasm_get_f64_unaligned = Module["_mono_wasm_get_f64_unaligned"] = Module["asm"]["mono_wasm_get_f64_unaligned"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_get_i32_unaligned = Module["_mono_wasm_get_i32_unaligned"] = function() { + return (_mono_wasm_get_i32_unaligned = Module["_mono_wasm_get_i32_unaligned"] = Module["asm"]["mono_wasm_get_i32_unaligned"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_is_zero_page_reserved = Module["_mono_wasm_is_zero_page_reserved"] = function() { + return (_mono_wasm_is_zero_page_reserved = Module["_mono_wasm_is_zero_page_reserved"] = Module["asm"]["mono_wasm_is_zero_page_reserved"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_send_dbg_command_with_parms = Module["_mono_wasm_send_dbg_command_with_parms"] = function() { + return (_mono_wasm_send_dbg_command_with_parms = Module["_mono_wasm_send_dbg_command_with_parms"] = Module["asm"]["mono_wasm_send_dbg_command_with_parms"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_send_dbg_command = Module["_mono_wasm_send_dbg_command"] = function() { + return (_mono_wasm_send_dbg_command = Module["_mono_wasm_send_dbg_command"] = Module["asm"]["mono_wasm_send_dbg_command"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_event_pipe_enable = Module["_mono_wasm_event_pipe_enable"] = function() { + return (_mono_wasm_event_pipe_enable = Module["_mono_wasm_event_pipe_enable"] = Module["asm"]["mono_wasm_event_pipe_enable"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_event_pipe_session_start_streaming = Module["_mono_wasm_event_pipe_session_start_streaming"] = function() { + return (_mono_wasm_event_pipe_session_start_streaming = Module["_mono_wasm_event_pipe_session_start_streaming"] = Module["asm"]["mono_wasm_event_pipe_session_start_streaming"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_event_pipe_session_disable = Module["_mono_wasm_event_pipe_session_disable"] = function() { + return (_mono_wasm_event_pipe_session_disable = Module["_mono_wasm_event_pipe_session_disable"] = Module["asm"]["mono_wasm_event_pipe_session_disable"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_register_jit_call_thunk = Module["_mono_jiterp_register_jit_call_thunk"] = function() { + return (_mono_jiterp_register_jit_call_thunk = Module["_mono_jiterp_register_jit_call_thunk"] = Module["asm"]["mono_jiterp_register_jit_call_thunk"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_stackval_to_data = Module["_mono_jiterp_stackval_to_data"] = function() { + return (_mono_jiterp_stackval_to_data = Module["_mono_jiterp_stackval_to_data"] = Module["asm"]["mono_jiterp_stackval_to_data"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_stackval_from_data = Module["_mono_jiterp_stackval_from_data"] = function() { + return (_mono_jiterp_stackval_from_data = Module["_mono_jiterp_stackval_from_data"] = Module["asm"]["mono_jiterp_stackval_from_data"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_arg_offset = Module["_mono_jiterp_get_arg_offset"] = function() { + return (_mono_jiterp_get_arg_offset = Module["_mono_jiterp_get_arg_offset"] = Module["asm"]["mono_jiterp_get_arg_offset"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_overflow_check_i4 = Module["_mono_jiterp_overflow_check_i4"] = function() { + return (_mono_jiterp_overflow_check_i4 = Module["_mono_jiterp_overflow_check_i4"] = Module["asm"]["mono_jiterp_overflow_check_i4"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_overflow_check_u4 = Module["_mono_jiterp_overflow_check_u4"] = function() { + return (_mono_jiterp_overflow_check_u4 = Module["_mono_jiterp_overflow_check_u4"] = Module["asm"]["mono_jiterp_overflow_check_u4"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_ld_delegate_method_ptr = Module["_mono_jiterp_ld_delegate_method_ptr"] = function() { + return (_mono_jiterp_ld_delegate_method_ptr = Module["_mono_jiterp_ld_delegate_method_ptr"] = Module["asm"]["mono_jiterp_ld_delegate_method_ptr"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_interp_entry = Module["_mono_jiterp_interp_entry"] = function() { + return (_mono_jiterp_interp_entry = Module["_mono_jiterp_interp_entry"] = Module["asm"]["mono_jiterp_interp_entry"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _memset = Module["_memset"] = function() { + return (_memset = Module["_memset"] = Module["asm"]["memset"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _fmodf = Module["_fmodf"] = function() { + return (_fmodf = Module["_fmodf"] = Module["asm"]["fmodf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _fmod = Module["_fmod"] = function() { + return (_fmod = Module["_fmod"] = Module["asm"]["fmod"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _asin = Module["_asin"] = function() { + return (_asin = Module["_asin"] = Module["asm"]["asin"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _asinh = Module["_asinh"] = function() { + return (_asinh = Module["_asinh"] = Module["asm"]["asinh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _acos = Module["_acos"] = function() { + return (_acos = Module["_acos"] = Module["asm"]["acos"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _acosh = Module["_acosh"] = function() { + return (_acosh = Module["_acosh"] = Module["asm"]["acosh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atan = Module["_atan"] = function() { + return (_atan = Module["_atan"] = Module["asm"]["atan"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atanh = Module["_atanh"] = function() { + return (_atanh = Module["_atanh"] = Module["asm"]["atanh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _cos = Module["_cos"] = function() { + return (_cos = Module["_cos"] = Module["asm"]["cos"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _cbrt = Module["_cbrt"] = function() { + return (_cbrt = Module["_cbrt"] = Module["asm"]["cbrt"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _cosh = Module["_cosh"] = function() { + return (_cosh = Module["_cosh"] = Module["asm"]["cosh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _exp = Module["_exp"] = function() { + return (_exp = Module["_exp"] = Module["asm"]["exp"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _log = Module["_log"] = function() { + return (_log = Module["_log"] = Module["asm"]["log"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _log2 = Module["_log2"] = function() { + return (_log2 = Module["_log2"] = Module["asm"]["log2"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _log10 = Module["_log10"] = function() { + return (_log10 = Module["_log10"] = Module["asm"]["log10"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _sin = Module["_sin"] = function() { + return (_sin = Module["_sin"] = Module["asm"]["sin"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _sinh = Module["_sinh"] = function() { + return (_sinh = Module["_sinh"] = Module["asm"]["sinh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _tan = Module["_tan"] = function() { + return (_tan = Module["_tan"] = Module["asm"]["tan"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _tanh = Module["_tanh"] = function() { + return (_tanh = Module["_tanh"] = Module["asm"]["tanh"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atan2 = Module["_atan2"] = function() { + return (_atan2 = Module["_atan2"] = Module["asm"]["atan2"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _pow = Module["_pow"] = function() { + return (_pow = Module["_pow"] = Module["asm"]["pow"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _fma = Module["_fma"] = function() { + return (_fma = Module["_fma"] = Module["asm"]["fma"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _asinf = Module["_asinf"] = function() { + return (_asinf = Module["_asinf"] = Module["asm"]["asinf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _asinhf = Module["_asinhf"] = function() { + return (_asinhf = Module["_asinhf"] = Module["asm"]["asinhf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _acosf = Module["_acosf"] = function() { + return (_acosf = Module["_acosf"] = Module["asm"]["acosf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _acoshf = Module["_acoshf"] = function() { + return (_acoshf = Module["_acoshf"] = Module["asm"]["acoshf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atanf = Module["_atanf"] = function() { + return (_atanf = Module["_atanf"] = Module["asm"]["atanf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atanhf = Module["_atanhf"] = function() { + return (_atanhf = Module["_atanhf"] = Module["asm"]["atanhf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _cosf = Module["_cosf"] = function() { + return (_cosf = Module["_cosf"] = Module["asm"]["cosf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _cbrtf = Module["_cbrtf"] = function() { + return (_cbrtf = Module["_cbrtf"] = Module["asm"]["cbrtf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _coshf = Module["_coshf"] = function() { + return (_coshf = Module["_coshf"] = Module["asm"]["coshf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _expf = Module["_expf"] = function() { + return (_expf = Module["_expf"] = Module["asm"]["expf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _logf = Module["_logf"] = function() { + return (_logf = Module["_logf"] = Module["asm"]["logf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _log2f = Module["_log2f"] = function() { + return (_log2f = Module["_log2f"] = Module["asm"]["log2f"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _log10f = Module["_log10f"] = function() { + return (_log10f = Module["_log10f"] = Module["asm"]["log10f"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _sinf = Module["_sinf"] = function() { + return (_sinf = Module["_sinf"] = Module["asm"]["sinf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _sinhf = Module["_sinhf"] = function() { + return (_sinhf = Module["_sinhf"] = Module["asm"]["sinhf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _tanf = Module["_tanf"] = function() { + return (_tanf = Module["_tanf"] = Module["asm"]["tanf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _tanhf = Module["_tanhf"] = function() { + return (_tanhf = Module["_tanhf"] = Module["asm"]["tanhf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _atan2f = Module["_atan2f"] = function() { + return (_atan2f = Module["_atan2f"] = Module["asm"]["atan2f"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _powf = Module["_powf"] = function() { + return (_powf = Module["_powf"] = Module["asm"]["powf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _fmaf = Module["_fmaf"] = function() { + return (_fmaf = Module["_fmaf"] = Module["asm"]["fmaf"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_polling_required_address = Module["_mono_jiterp_get_polling_required_address"] = function() { + return (_mono_jiterp_get_polling_required_address = Module["_mono_jiterp_get_polling_required_address"] = Module["asm"]["mono_jiterp_get_polling_required_address"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_do_safepoint = Module["_mono_jiterp_do_safepoint"] = function() { + return (_mono_jiterp_do_safepoint = Module["_mono_jiterp_do_safepoint"] = Module["asm"]["mono_jiterp_do_safepoint"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_imethod_to_ftnptr = Module["_mono_jiterp_imethod_to_ftnptr"] = function() { + return (_mono_jiterp_imethod_to_ftnptr = Module["_mono_jiterp_imethod_to_ftnptr"] = Module["asm"]["mono_jiterp_imethod_to_ftnptr"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_enum_hasflag = Module["_mono_jiterp_enum_hasflag"] = function() { + return (_mono_jiterp_enum_hasflag = Module["_mono_jiterp_enum_hasflag"] = Module["asm"]["mono_jiterp_enum_hasflag"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_simd_intrinsic = Module["_mono_jiterp_get_simd_intrinsic"] = function() { + return (_mono_jiterp_get_simd_intrinsic = Module["_mono_jiterp_get_simd_intrinsic"] = Module["asm"]["mono_jiterp_get_simd_intrinsic"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_simd_opcode = Module["_mono_jiterp_get_simd_opcode"] = function() { + return (_mono_jiterp_get_simd_opcode = Module["_mono_jiterp_get_simd_opcode"] = Module["asm"]["mono_jiterp_get_simd_opcode"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_opcode_info = Module["_mono_jiterp_get_opcode_info"] = function() { + return (_mono_jiterp_get_opcode_info = Module["_mono_jiterp_get_opcode_info"] = Module["asm"]["mono_jiterp_get_opcode_info"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _jiterp_preserve_module = Module["_jiterp_preserve_module"] = function() { + return (_jiterp_preserve_module = Module["_jiterp_preserve_module"] = Module["asm"]["jiterp_preserve_module"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_encode_leb64_ref = Module["_mono_jiterp_encode_leb64_ref"] = function() { + return (_mono_jiterp_encode_leb64_ref = Module["_mono_jiterp_encode_leb64_ref"] = Module["asm"]["mono_jiterp_encode_leb64_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_encode_leb52 = Module["_mono_jiterp_encode_leb52"] = function() { + return (_mono_jiterp_encode_leb52 = Module["_mono_jiterp_encode_leb52"] = Module["asm"]["mono_jiterp_encode_leb52"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_encode_leb_signed_boundary = Module["_mono_jiterp_encode_leb_signed_boundary"] = function() { + return (_mono_jiterp_encode_leb_signed_boundary = Module["_mono_jiterp_encode_leb_signed_boundary"] = Module["asm"]["mono_jiterp_encode_leb_signed_boundary"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_increase_entry_count = Module["_mono_jiterp_increase_entry_count"] = function() { + return (_mono_jiterp_increase_entry_count = Module["_mono_jiterp_increase_entry_count"] = Module["asm"]["mono_jiterp_increase_entry_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_object_unbox = Module["_mono_jiterp_object_unbox"] = function() { + return (_mono_jiterp_object_unbox = Module["_mono_jiterp_object_unbox"] = Module["asm"]["mono_jiterp_object_unbox"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_type_is_byref = Module["_mono_jiterp_type_is_byref"] = function() { + return (_mono_jiterp_type_is_byref = Module["_mono_jiterp_type_is_byref"] = Module["asm"]["mono_jiterp_type_is_byref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_value_copy = Module["_mono_jiterp_value_copy"] = function() { + return (_mono_jiterp_value_copy = Module["_mono_jiterp_value_copy"] = Module["asm"]["mono_jiterp_value_copy"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_try_newobj_inlined = Module["_mono_jiterp_try_newobj_inlined"] = function() { + return (_mono_jiterp_try_newobj_inlined = Module["_mono_jiterp_try_newobj_inlined"] = Module["asm"]["mono_jiterp_try_newobj_inlined"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_try_newstr = Module["_mono_jiterp_try_newstr"] = function() { + return (_mono_jiterp_try_newstr = Module["_mono_jiterp_try_newstr"] = Module["asm"]["mono_jiterp_try_newstr"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_gettype_ref = Module["_mono_jiterp_gettype_ref"] = function() { + return (_mono_jiterp_gettype_ref = Module["_mono_jiterp_gettype_ref"] = Module["asm"]["mono_jiterp_gettype_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_has_parent_fast = Module["_mono_jiterp_has_parent_fast"] = function() { + return (_mono_jiterp_has_parent_fast = Module["_mono_jiterp_has_parent_fast"] = Module["asm"]["mono_jiterp_has_parent_fast"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_implements_interface = Module["_mono_jiterp_implements_interface"] = function() { + return (_mono_jiterp_implements_interface = Module["_mono_jiterp_implements_interface"] = Module["asm"]["mono_jiterp_implements_interface"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_is_special_interface = Module["_mono_jiterp_is_special_interface"] = function() { + return (_mono_jiterp_is_special_interface = Module["_mono_jiterp_is_special_interface"] = Module["asm"]["mono_jiterp_is_special_interface"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_implements_special_interface = Module["_mono_jiterp_implements_special_interface"] = function() { + return (_mono_jiterp_implements_special_interface = Module["_mono_jiterp_implements_special_interface"] = Module["asm"]["mono_jiterp_implements_special_interface"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_cast_v2 = Module["_mono_jiterp_cast_v2"] = function() { + return (_mono_jiterp_cast_v2 = Module["_mono_jiterp_cast_v2"] = Module["asm"]["mono_jiterp_cast_v2"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_localloc = Module["_mono_jiterp_localloc"] = function() { + return (_mono_jiterp_localloc = Module["_mono_jiterp_localloc"] = Module["asm"]["mono_jiterp_localloc"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_ldtsflda = Module["_mono_jiterp_ldtsflda"] = function() { + return (_mono_jiterp_ldtsflda = Module["_mono_jiterp_ldtsflda"] = Module["asm"]["mono_jiterp_ldtsflda"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_box_ref = Module["_mono_jiterp_box_ref"] = function() { + return (_mono_jiterp_box_ref = Module["_mono_jiterp_box_ref"] = Module["asm"]["mono_jiterp_box_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_conv = Module["_mono_jiterp_conv"] = function() { + return (_mono_jiterp_conv = Module["_mono_jiterp_conv"] = Module["asm"]["mono_jiterp_conv"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_relop_fp = Module["_mono_jiterp_relop_fp"] = function() { + return (_mono_jiterp_relop_fp = Module["_mono_jiterp_relop_fp"] = Module["asm"]["mono_jiterp_relop_fp"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_size_of_stackval = Module["_mono_jiterp_get_size_of_stackval"] = function() { + return (_mono_jiterp_get_size_of_stackval = Module["_mono_jiterp_get_size_of_stackval"] = Module["asm"]["mono_jiterp_get_size_of_stackval"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_type_get_raw_value_size = Module["_mono_jiterp_type_get_raw_value_size"] = function() { + return (_mono_jiterp_type_get_raw_value_size = Module["_mono_jiterp_type_get_raw_value_size"] = Module["asm"]["mono_jiterp_type_get_raw_value_size"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_trace_bailout = Module["_mono_jiterp_trace_bailout"] = function() { + return (_mono_jiterp_trace_bailout = Module["_mono_jiterp_trace_bailout"] = Module["asm"]["mono_jiterp_trace_bailout"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_trace_bailout_count = Module["_mono_jiterp_get_trace_bailout_count"] = function() { + return (_mono_jiterp_get_trace_bailout_count = Module["_mono_jiterp_get_trace_bailout_count"] = Module["asm"]["mono_jiterp_get_trace_bailout_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_adjust_abort_count = Module["_mono_jiterp_adjust_abort_count"] = function() { + return (_mono_jiterp_adjust_abort_count = Module["_mono_jiterp_adjust_abort_count"] = Module["asm"]["mono_jiterp_adjust_abort_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_interp_entry_prologue = Module["_mono_jiterp_interp_entry_prologue"] = function() { + return (_mono_jiterp_interp_entry_prologue = Module["_mono_jiterp_interp_entry_prologue"] = Module["asm"]["mono_jiterp_interp_entry_prologue"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_cas_i32 = Module["_mono_jiterp_cas_i32"] = function() { + return (_mono_jiterp_cas_i32 = Module["_mono_jiterp_cas_i32"] = Module["asm"]["mono_jiterp_cas_i32"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_cas_i64 = Module["_mono_jiterp_cas_i64"] = function() { + return (_mono_jiterp_cas_i64 = Module["_mono_jiterp_cas_i64"] = Module["asm"]["mono_jiterp_cas_i64"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_opcode_value_table_entry = Module["_mono_jiterp_get_opcode_value_table_entry"] = function() { + return (_mono_jiterp_get_opcode_value_table_entry = Module["_mono_jiterp_get_opcode_value_table_entry"] = Module["asm"]["mono_jiterp_get_opcode_value_table_entry"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_trace_hit_count = Module["_mono_jiterp_get_trace_hit_count"] = function() { + return (_mono_jiterp_get_trace_hit_count = Module["_mono_jiterp_get_trace_hit_count"] = Module["asm"]["mono_jiterp_get_trace_hit_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_parse_option = Module["_mono_jiterp_parse_option"] = function() { + return (_mono_jiterp_parse_option = Module["_mono_jiterp_parse_option"] = Module["asm"]["mono_jiterp_parse_option"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_options_version = Module["_mono_jiterp_get_options_version"] = function() { + return (_mono_jiterp_get_options_version = Module["_mono_jiterp_get_options_version"] = Module["asm"]["mono_jiterp_get_options_version"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_options_as_json = Module["_mono_jiterp_get_options_as_json"] = function() { + return (_mono_jiterp_get_options_as_json = Module["_mono_jiterp_get_options_as_json"] = Module["asm"]["mono_jiterp_get_options_as_json"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_update_jit_call_dispatcher = Module["_mono_jiterp_update_jit_call_dispatcher"] = function() { + return (_mono_jiterp_update_jit_call_dispatcher = Module["_mono_jiterp_update_jit_call_dispatcher"] = Module["asm"]["mono_jiterp_update_jit_call_dispatcher"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_object_has_component_size = Module["_mono_jiterp_object_has_component_size"] = function() { + return (_mono_jiterp_object_has_component_size = Module["_mono_jiterp_object_has_component_size"] = Module["asm"]["mono_jiterp_object_has_component_size"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_hashcode = Module["_mono_jiterp_get_hashcode"] = function() { + return (_mono_jiterp_get_hashcode = Module["_mono_jiterp_get_hashcode"] = Module["asm"]["mono_jiterp_get_hashcode"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_try_get_hashcode = Module["_mono_jiterp_try_get_hashcode"] = function() { + return (_mono_jiterp_try_get_hashcode = Module["_mono_jiterp_try_get_hashcode"] = Module["asm"]["mono_jiterp_try_get_hashcode"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_signature_has_this = Module["_mono_jiterp_get_signature_has_this"] = function() { + return (_mono_jiterp_get_signature_has_this = Module["_mono_jiterp_get_signature_has_this"] = Module["asm"]["mono_jiterp_get_signature_has_this"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_signature_return_type = Module["_mono_jiterp_get_signature_return_type"] = function() { + return (_mono_jiterp_get_signature_return_type = Module["_mono_jiterp_get_signature_return_type"] = Module["asm"]["mono_jiterp_get_signature_return_type"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_signature_param_count = Module["_mono_jiterp_get_signature_param_count"] = function() { + return (_mono_jiterp_get_signature_param_count = Module["_mono_jiterp_get_signature_param_count"] = Module["asm"]["mono_jiterp_get_signature_param_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_signature_params = Module["_mono_jiterp_get_signature_params"] = function() { + return (_mono_jiterp_get_signature_params = Module["_mono_jiterp_get_signature_params"] = Module["asm"]["mono_jiterp_get_signature_params"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_type_to_ldind = Module["_mono_jiterp_type_to_ldind"] = function() { + return (_mono_jiterp_type_to_ldind = Module["_mono_jiterp_type_to_ldind"] = Module["asm"]["mono_jiterp_type_to_ldind"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_type_to_stind = Module["_mono_jiterp_type_to_stind"] = function() { + return (_mono_jiterp_type_to_stind = Module["_mono_jiterp_type_to_stind"] = Module["asm"]["mono_jiterp_type_to_stind"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_array_rank = Module["_mono_jiterp_get_array_rank"] = function() { + return (_mono_jiterp_get_array_rank = Module["_mono_jiterp_get_array_rank"] = Module["asm"]["mono_jiterp_get_array_rank"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_array_element_size = Module["_mono_jiterp_get_array_element_size"] = function() { + return (_mono_jiterp_get_array_element_size = Module["_mono_jiterp_get_array_element_size"] = Module["asm"]["mono_jiterp_get_array_element_size"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_set_object_field = Module["_mono_jiterp_set_object_field"] = function() { + return (_mono_jiterp_set_object_field = Module["_mono_jiterp_set_object_field"] = Module["asm"]["mono_jiterp_set_object_field"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_debug_count = Module["_mono_jiterp_debug_count"] = function() { + return (_mono_jiterp_debug_count = Module["_mono_jiterp_debug_count"] = Module["asm"]["mono_jiterp_debug_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_stelem_ref = Module["_mono_jiterp_stelem_ref"] = function() { + return (_mono_jiterp_stelem_ref = Module["_mono_jiterp_stelem_ref"] = Module["asm"]["mono_jiterp_stelem_ref"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_trace_transfer = Module["_mono_jiterp_trace_transfer"] = function() { + return (_mono_jiterp_trace_transfer = Module["_mono_jiterp_trace_transfer"] = Module["asm"]["mono_jiterp_trace_transfer"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_member_offset = Module["_mono_jiterp_get_member_offset"] = function() { + return (_mono_jiterp_get_member_offset = Module["_mono_jiterp_get_member_offset"] = Module["asm"]["mono_jiterp_get_member_offset"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_write_number_unaligned = Module["_mono_jiterp_write_number_unaligned"] = function() { + return (_mono_jiterp_write_number_unaligned = Module["_mono_jiterp_write_number_unaligned"] = Module["asm"]["mono_jiterp_write_number_unaligned"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_get_rejected_trace_count = Module["_mono_jiterp_get_rejected_trace_count"] = function() { + return (_mono_jiterp_get_rejected_trace_count = Module["_mono_jiterp_get_rejected_trace_count"] = Module["asm"]["mono_jiterp_get_rejected_trace_count"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_boost_back_branch_target = Module["_mono_jiterp_boost_back_branch_target"] = function() { + return (_mono_jiterp_boost_back_branch_target = Module["_mono_jiterp_boost_back_branch_target"] = Module["asm"]["mono_jiterp_boost_back_branch_target"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_jiterp_is_imethod_var_address_taken = Module["_mono_jiterp_is_imethod_var_address_taken"] = function() { + return (_mono_jiterp_is_imethod_var_address_taken = Module["_mono_jiterp_is_imethod_var_address_taken"] = Module["asm"]["mono_jiterp_is_imethod_var_address_taken"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var ___errno_location = function() { + return (___errno_location = Module["asm"]["__errno_location"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_background_exec = Module["_mono_background_exec"] = function() { + return (_mono_background_exec = Module["_mono_background_exec"] = Module["asm"]["mono_background_exec"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_gc_lock = Module["_mono_wasm_gc_lock"] = function() { + return (_mono_wasm_gc_lock = Module["_mono_wasm_gc_lock"] = Module["asm"]["mono_wasm_gc_lock"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_gc_unlock = Module["_mono_wasm_gc_unlock"] = function() { + return (_mono_wasm_gc_unlock = Module["_mono_wasm_gc_unlock"] = Module["asm"]["mono_wasm_gc_unlock"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_print_method_from_ip = Module["_mono_print_method_from_ip"] = function() { + return (_mono_print_method_from_ip = Module["_mono_print_method_from_ip"] = Module["asm"]["mono_print_method_from_ip"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _mono_wasm_execute_timer = Module["_mono_wasm_execute_timer"] = function() { + return (_mono_wasm_execute_timer = Module["_mono_wasm_execute_timer"] = Module["asm"]["mono_wasm_execute_timer"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var ___dl_seterr = function() { + return (___dl_seterr = Module["asm"]["__dl_seterr"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _htonl = function() { + return (_htonl = Module["asm"]["htonl"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _htons = Module["_htons"] = function() { + return (_htons = Module["_htons"] = Module["asm"]["htons"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _emscripten_builtin_memalign = function() { + return (_emscripten_builtin_memalign = Module["asm"]["emscripten_builtin_memalign"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _ntohs = Module["_ntohs"] = function() { + return (_ntohs = Module["_ntohs"] = Module["asm"]["ntohs"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var _memalign = Module["_memalign"] = function() { + return (_memalign = Module["_memalign"] = Module["asm"]["memalign"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var ___trap = function() { + return (___trap = Module["asm"]["__trap"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var stackSave = Module["stackSave"] = function() { + return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var stackRestore = Module["stackRestore"] = function() { + return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments); +}; + +/** @type {function(...*):?} */ +var stackAlloc = Module["stackAlloc"] = function() { + return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments); +}; + + + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === + +Module["UTF8ArrayToString"] = UTF8ArrayToString; +Module["UTF8ToString"] = UTF8ToString; +Module["stringToUTF8Array"] = stringToUTF8Array; +Module["addRunDependency"] = addRunDependency; +Module["removeRunDependency"] = removeRunDependency; +Module["FS_createPath"] = FS.createPath; +Module["FS_createDataFile"] = FS.createDataFile; +Module["FS_createPreloadedFile"] = FS.createPreloadedFile; +Module["FS_createLazyFile"] = FS.createLazyFile; +Module["FS_createDevice"] = FS.createDevice; +Module["FS_unlink"] = FS.unlink; +Module["out"] = out; +Module["err"] = err; +Module["abort"] = abort; +Module["runtimeKeepalivePush"] = runtimeKeepalivePush; +Module["runtimeKeepalivePop"] = runtimeKeepalivePop; +Module["maybeExit"] = maybeExit; +Module["safeSetTimeout"] = safeSetTimeout; +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; +Module["addFunction"] = addFunction; +Module["setValue"] = setValue; +Module["getValue"] = getValue; +Module["FS"] = FS; + + +var calledRun; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +}; + +function run() { + + if (runDependencies > 0) { + return; + } + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + + if (ABORT) return; + + initRuntime(); + + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else + { + doRun(); + } +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +run(); + + +// end include: postamble.js + + + return createDotnetRuntime.ready +} + +); +})(); +export default createDotnetRuntime; +var fetch = fetch || undefined; var require = require || undefined; var __dirname = __dirname || ''; var _nativeModuleLoaded = false; diff --git a/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.br b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.br new file mode 100644 index 0000000..356f549 Binary files /dev/null and b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.br differ diff --git a/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.gz b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.gz new file mode 100644 index 0000000..073ba72 Binary files /dev/null and b/_framework/dotnet.native.8.0.0-rc.2.23479.6.7vy6u5lete.js.gz differ diff --git a/_framework/dotnet.native.wasm b/_framework/dotnet.native.wasm new file mode 100755 index 0000000..287e084 Binary files /dev/null and b/_framework/dotnet.native.wasm differ diff --git a/_framework/dotnet.native.wasm.br b/_framework/dotnet.native.wasm.br new file mode 100644 index 0000000..40a56a0 Binary files /dev/null and b/_framework/dotnet.native.wasm.br differ diff --git a/_framework/dotnet.native.wasm.gz b/_framework/dotnet.native.wasm.gz new file mode 100644 index 0000000..df3e0c0 Binary files /dev/null and b/_framework/dotnet.native.wasm.gz differ diff --git a/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js new file mode 100755 index 0000000..61a8c0c --- /dev/null +++ b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js @@ -0,0 +1,4 @@ +//! Licensed to the .NET Foundation under one or more agreements. +//! The .NET Foundation licenses this file to you under the MIT license. +var e="8.0.0-rc.2.23479.6";let t,n;const r="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o="function"==typeof importScripts,a="object"==typeof window||o&&!r,s=!a&&!r&&!o;let i,c=null,l=null,u=null,p=!1,d=!0,_=!0,f=!1,m=!1,h=!1;function b(e){i=e.isPThread,p=e.linkerDisableLegacyJsInterop,d=e.linkerWasmEnableSIMD,_=e.linkerWasmEnableEH,f=e.linkerEnableAotProfiler,m=e.linkerEnableBrowserProfiler,l.quit=e.quit_,l.ExitStatus=e.ExitStatus,l.moduleGitHash=e.gitHash}function g(e){if(h)throw new Error("Runtime module already loaded");h=!0,t=e.module,n=e.internal,l=e.runtimeHelpers,u=e.loaderHelpers,c=e.api,Object.assign(l,{gitHash:"0b25e38ad32a69cd83ae246104b32449203cc71c",allAssetsInMemory:y(),dotnetReady:y(),afterInstantiateWasm:y(),beforePreInit:y(),afterPreInit:y(),afterPreRun:y(),beforeOnRuntimeInitialized:y(),afterOnRuntimeInitialized:y(),afterPostRun:y(),mono_wasm_exit:()=>{throw new Error("Mono shutdown")},abort:e=>{throw e}}),Object.assign(e.module.config,{}),Object.assign(e.api,{Module:e.module,...e.module}),Object.assign(e.api,{INTERNAL:e.internal})}function y(e,t){return u.createPromiseController(e,t)}function w(e,t){if(e)return;const n="Assert failed: "+("function"==typeof t?t():t),r=new Error(n);l.abort(r)}const S=0,k=0,v=0,E=0,U=0,I=-1,T=0,x=0,A=0;function j(e){return null==e}var R;!function(e){e[e.None=0]="None",e[e.Void=1]="Void",e[e.Discard=2]="Discard",e[e.Boolean=3]="Boolean",e[e.Byte=4]="Byte",e[e.Char=5]="Char",e[e.Int16=6]="Int16",e[e.Int32=7]="Int32",e[e.Int52=8]="Int52",e[e.BigInt64=9]="BigInt64",e[e.Double=10]="Double",e[e.Single=11]="Single",e[e.IntPtr=12]="IntPtr",e[e.JSObject=13]="JSObject",e[e.Object=14]="Object",e[e.String=15]="String",e[e.Exception=16]="Exception",e[e.DateTime=17]="DateTime",e[e.DateTimeOffset=18]="DateTimeOffset",e[e.Nullable=19]="Nullable",e[e.Task=20]="Task",e[e.Array=21]="Array",e[e.ArraySegment=22]="ArraySegment",e[e.Span=23]="Span",e[e.Action=24]="Action",e[e.Function=25]="Function",e[e.JSException=26]="JSException"}(R||(R={}));var L=!1;const C=[],$=32768;let N,D;const B=BigInt("9223372036854775807"),O=BigInt("-9223372036854775808");function M(){N||(N=t._malloc($),D=N),C.push(D)}function F(e,t,n){if(!Number.isSafeInteger(e))throw new Error(`Assert failed: Value is not an integer: ${e} (${typeof e})`);if(!(e>=t&&e<=n))throw new Error(`Assert failed: Overflow: value ${e} is out of ${t} ${n} range`)}function P(e,t){Ee().fill(0,e,e+t)}function z(e,n){const r=!!n;"number"==typeof n&&F(n,0,1),t.HEAP32[e>>>2]=r?1:0}function V(e,n){F(n,0,255),t.HEAPU8[e]=n}function H(e,n){F(n,0,65535),t.HEAPU16[e>>>1]=n}function W(e,t,n){F(n,0,65535),e[t>>>1]=n}function G(e,n){t.HEAPU32[e>>>2]=n}function q(e,n){F(n,0,4294967295),t.HEAPU32[e>>>2]=n}function J(e,n){F(n,-128,127),t.HEAP8[e]=n}function Y(e,n){F(n,-32768,32767),t.HEAP16[e>>>1]=n}function X(e,n){t.HEAP32[e>>>2]=n}function Z(e,n){F(n,-2147483648,2147483647),t.HEAP32[e>>>2]=n}function K(e){if(0!==e)switch(e){case 1:throw new Error("value was not an integer");case 2:throw new Error("value out of range");default:throw new Error("unknown internal error")}}function Q(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);K(St.mono_wasm_f64_to_i52(e,t))}function ee(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);if(!(t>=0))throw new Error("Assert failed: Can't convert negative Number into UInt64");K(St.mono_wasm_f64_to_u52(e,t))}function te(e,n){if("bigint"!=typeof n)throw new Error(`Assert failed: Value is not an bigint: ${n} (${typeof n})`);if(!(n>=O&&n<=B))throw new Error(`Assert failed: Overflow: value ${n} is out of ${O} ${B} range`);t.HEAP64[e>>>3]=n}function ne(e,n){if("number"!=typeof n)throw new Error(`Assert failed: Value is not a Number: ${n} (${typeof n})`);t.HEAPF32[e>>>2]=n}function re(e,n){if("number"!=typeof n)throw new Error(`Assert failed: Value is not a Number: ${n} (${typeof n})`);t.HEAPF64[e>>>3]=n}function oe(e){return!!t.HEAP32[e>>>2]}function ae(e){return t.HEAPU8[e]}function se(e){return t.HEAPU16[e>>>1]}function ie(e){return t.HEAPU32[e>>>2]}function ce(e,t){return e[t>>>2]}function le(e){return St.mono_wasm_get_i32_unaligned(e)}function ue(e){return St.mono_wasm_get_i32_unaligned(e)>>>0}function pe(e){return t.HEAP8[e]}function de(e){return t.HEAP16[e>>>1]}function _e(e){return t.HEAP32[e>>>2]}function fe(e){const t=St.mono_wasm_i52_to_f64(e,l._i52_error_scratch_buffer);return K(_e(l._i52_error_scratch_buffer)),t}function me(e){const t=St.mono_wasm_u52_to_f64(e,l._i52_error_scratch_buffer);return K(_e(l._i52_error_scratch_buffer)),t}function he(e){return t.HEAP64[e>>>3]}function be(e){return t.HEAPF32[e>>>2]}function ge(e){return t.HEAPF64[e>>>3]}function ye(e){const n=t._malloc(e.length);return new Uint8Array(Ee().buffer,n,e.length).set(e),n}function we(){return t.HEAP8}function Se(){return t.HEAP16}function ke(){return t.HEAP32}function ve(){return t.HEAP64}function Ee(){return t.HEAPU8}function Ue(){return t.HEAPU16}function Ie(){return t.HEAPU32}function Te(){return t.HEAPF32}function xe(){return t.HEAPF64}const Ae=8192;let je=null,Re=null,Le=0;const Ce=[],$e=[];function Ne(e,n){if(e<=0)throw new Error("capacity >= 1");const r=4*(e|=0),o=t._malloc(r);if(o%4!=0)throw new Error("Malloc returned an unaligned offset");return P(o,r),new WasmRootBufferImpl(o,e,!0,n)}function De(e){let t;if(!e)throw new Error("address must be a location in the native heap");return $e.length>0?(t=$e.pop(),t._set_address(e)):t=new Fe(e),t}function Be(e=void 0){let t;if(Ce.length>0)t=Ce.pop();else{const e=function(){if(j(je)||!Re){je=Ne(Ae,"js roots"),Re=new Int32Array(Ae),Le=Ae;for(let e=0;e>>2,this.__count=t,this.length=t,this.__handle=St.mono_wasm_register_root(e,o,r||"noname"),this.__ownsAllocation=n}_throw_index_out_of_range(){throw new Error("index out of range")}_check_in_range(e){(e>=this.__count||e<0)&&this._throw_index_out_of_range()}get_address(e){return this._check_in_range(e),this.__offset+4*e}get_address_32(e){return this._check_in_range(e),this.__offset32+e}get(e){this._check_in_range(e);const t=this.get_address_32(e);return Ie()[t]}set(e,t){const n=this.get_address(e);return St.mono_wasm_write_managed_pointer_unsafe(n,t),t}copy_value_from_address(e,t){const n=this.get_address(e);St.mono_wasm_copy_managed_pointer(n,t)}_unsafe_get(e){return Ie()[this.__offset32+e]}_unsafe_set(e,t){const n=this.__offset+e;St.mono_wasm_write_managed_pointer_unsafe(n,t)}clear(){this.__offset&&P(this.__offset,4*this.__count)}release(){this.__offset&&this.__ownsAllocation&&(St.mono_wasm_deregister_root(this.__offset),P(this.__offset,4*this.__count),t._free(this.__offset)),this.__handle=this.__offset=this.__count=this.__offset32=0}toString(){return`[root buffer @${this.get_address(0)}, size ${this.__count} ]`}}class Me{constructor(e,t){this.__buffer=e,this.__index=t}get_address(){return this.__buffer.get_address(this.__index)}get_address_32(){return this.__buffer.get_address_32(this.__index)}get address(){return this.__buffer.get_address(this.__index)}get(){return this.__buffer._unsafe_get(this.__index)}set(e){const t=this.__buffer.get_address(this.__index);return St.mono_wasm_write_managed_pointer_unsafe(t,e),e}copy_from(e){const t=e.address,n=this.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.address,n=e.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.address;St.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.address;St.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){const e=this.__buffer.get_address_32(this.__index);Ie()[e]=0}release(){if(!this.__buffer)throw new Error("No buffer");var e;Ce.length>128?(void 0!==(e=this.__index)&&(je.set(e,0),Re[Le]=e,Le++),this.__buffer=null,this.__index=0):(this.set(0),Ce.push(this))}toString(){return`[root @${this.address}]`}}class Fe{constructor(e){this.__external_address=U,this.__external_address_32=0,this._set_address(e)}_set_address(e){this.__external_address=e,this.__external_address_32=e>>>2}get address(){return this.__external_address}get_address(){return this.__external_address}get_address_32(){return this.__external_address_32}get(){return Ie()[this.__external_address_32]}set(e){return St.mono_wasm_write_managed_pointer_unsafe(this.__external_address,e),e}copy_from(e){const t=e.address,n=this.__external_address;St.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.__external_address,n=e.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.__external_address;St.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.__external_address;St.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){Ie()[this.__external_address>>>2]=0}release(){$e.length<128&&$e.push(this)}toString(){return`[external root @${this.address}]`}}const Pe=new Map,ze="";let Ve;const He=new Map;let We,Ge,qe,Je,Ye=0,Xe=null,Ze=0;function Ke(e){if(void 0===Je){const n=new Uint8Array(2*e.length);return t.stringToUTF8Array(e,n,0,2*e.length),n}return Je.encode(e)}function Qe(e){const n=Ee();return function(e,n,r){const o=n+r;let a=n;for(;e[a]&&!(a>=o);)++a;if(a-n<=16)return t.UTF8ArrayToString(e,n,r);if(void 0===qe)return t.UTF8ArrayToString(e,n,r);const s=it(e,n,a);return qe.decode(s)}(n,e,n.length-e)}function et(e,t){if(We){const n=it(Ee(),e,t);return We.decode(n)}return tt(e,t)}function tt(e,t){let n="";const r=Ue();for(let o=e;o>>1];n+=String.fromCharCode(e)}return n}function nt(e,t,n){const r=Ue(),o=n.length;for(let a=0;a=t));a++);}function rt(e){if(e.value===E)return null;const t=Ve+0,n=Ve+4,r=Ve+8;let o;St.mono_wasm_string_get_data_ref(e.address,t,n,r);const a=Ie(),s=ce(a,n),i=ce(a,t),c=ce(a,r);if(c&&(o=He.get(e.value)),void 0===o&&(s&&i?(o=et(i,i+s),c&&He.set(e.value,o)):o=ze),void 0===o)throw new Error(`internal error when decoding string at location ${e.value}`);return o}function ot(e,t){if(t.clear(),null!==e)if("symbol"==typeof e)at(e,t);else{if("string"!=typeof e)throw new Error("Expected string argument, got "+typeof e);if(0===e.length)at(e,t);else{if(e.length<=256){const n=Pe.get(e);if(n)return void t.set(n)}st(e,t)}}}function at(e,t){let n;if("symbol"==typeof e?(n=e.description,"string"!=typeof n&&(n=Symbol.keyFor(e)),"string"!=typeof n&&(n="")):"string"==typeof e&&(n=e),"string"!=typeof n)throw new Error(`Argument to stringToInternedMonoStringRoot must be a string but was ${e}`);if(0===n.length&&Ye)return void t.set(Ye);const r=Pe.get(n);r?t.set(r):(st(n,t),function(e,t,n){if(!t.value)throw new Error("null pointer passed to _store_string_in_intern_table");Ze>=8192&&(Xe=null),Xe||(Xe=Ne(8192,"interned strings"),Ze=0);const r=Xe,o=Ze++;if(St.mono_wasm_intern_string_ref(t.address),!t.value)throw new Error("mono_wasm_intern_string_ref produced a null pointer");Pe.set(e,t.value),He.set(t.value,e),0!==e.length||Ye||(Ye=t.value),r.copy_value_from_address(o,t.address)}(n,t))}function st(e,n){const r=2*(e.length+1),o=t._malloc(r);nt(o,o+r,e),St.mono_wasm_string_from_utf16_ref(o,e.length,n.address),t._free(o)}function it(e,t,n){return e.buffer,e.subarray(t,n)}let ct="MONO_WASM: ";function lt(e,...t){l.diagnosticTracing&&console.debug(ct+e,...t)}function ut(e,...t){console.info(ct+e,...t)}function pt(e,...t){console.warn(ct+e,...t)}function dt(e,...t){t&&t.length>0&&t[0]&&"object"==typeof t[0]&&t[0].silent||console.error(ct+e,...t)}const _t=new Map,ft=[];function mt(e){try{if(0==_t.size)return e;const t=e;for(let n=0;n{const n=t.find((e=>"object"==typeof e&&void 0!==e.replaceSection));if(void 0===n)return e;const r=n.funcNum,o=n.replaceSection,a=_t.get(Number(r));return void 0===a?e:e.replace(o,`${a} (${o})`)}));if(r!==t)return r}return t}catch(t){return console.debug(`failed to symbolicate: ${t}`),e}}function ht(e){let t=e;return t&&t.stack||(t=new Error(t?""+t:"Unknown error")),mt(t.stack)}function bt(){return[..._t.values()]}ft.push(/at (?[^:()]+:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)((?![^)a-fA-F\d])|$)/),ft.push(/(?:WASM \[[\da-zA-Z]+\], (?function #(?[\d]+) \(''\)))/),ft.push(/(?[a-z]+:\/\/[^ )]*:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)/),ft.push(/(?<[^ >]+>[.:]wasm-function\[(?[0-9]+)\])/);const gt=[[!0,"mono_wasm_array_get_ref","void",["number","number","number"]],[!0,"mono_wasm_obj_array_new_ref","void",["number","number"]],[!0,"mono_wasm_obj_array_set_ref","void",["number","number","number"]],[!0,"mono_wasm_try_unbox_primitive_and_get_type_ref","number",["number","number","number"]],[!0,"mono_wasm_box_primitive_ref","void",["number","number","number","number"]],[!0,"mono_wasm_string_array_new_ref","void",["number","number"]],[!0,"mono_wasm_typed_array_new_ref","void",["number","number","number","number","number"]],[!0,"mono_wasm_get_delegate_invoke_ref","number",["number"]],[!0,"mono_wasm_get_type_name","string",["number"]],[!0,"mono_wasm_get_type_aqn","string",["number"]],[!0,"mono_wasm_obj_array_new","number",["number"]],[!0,"mono_wasm_obj_array_set","void",["number","number","number"]],[!0,"mono_wasm_array_length_ref","number",["number"]]],yt=[[!0,"mono_wasm_register_root","number",["number","number","string"]],[!0,"mono_wasm_deregister_root",null,["number"]],[!0,"mono_wasm_string_get_data_ref",null,["number","number","number","number"]],[!0,"mono_wasm_set_is_debugger_attached","void",["bool"]],[!0,"mono_wasm_send_dbg_command","bool",["number","number","number","number","number"]],[!0,"mono_wasm_send_dbg_command_with_parms","bool",["number","number","number","number","number","number","string"]],[!0,"mono_wasm_setenv",null,["string","string"]],[!0,"mono_wasm_parse_runtime_options",null,["number","number"]],[!0,"mono_wasm_strdup","number",["string"]],[!0,"mono_background_exec",null,[]],[!0,"mono_wasm_execute_timer",null,[]],[!0,"mono_wasm_load_icu_data","number",["number"]],[!1,"mono_wasm_add_assembly","number",["string","number","number"]],[!0,"mono_wasm_add_satellite_assembly","void",["string","string","number","number"]],[!1,"mono_wasm_load_runtime",null,["string","number"]],[!0,"mono_wasm_change_debugger_log_level","void",["number"]],[!0,"mono_wasm_get_corlib","number",[]],[!0,"mono_wasm_assembly_load","number",["string"]],[!0,"mono_wasm_assembly_find_class","number",["number","string","string"]],[!0,"mono_wasm_runtime_run_module_cctor","void",["number"]],[!0,"mono_wasm_assembly_find_method","number",["number","string","number"]],[!1,"mono_wasm_invoke_method_ref","void",["number","number","number","number","number"]],[!0,"mono_wasm_string_from_utf16_ref","void",["number","number","number"]],[!0,"mono_wasm_intern_string_ref","void",["number"]],[!0,"mono_wasm_assembly_get_entry_point","number",["number","number"]],[!0,"mono_wasm_class_get_type","number",["number"]],[!1,"mono_wasm_exit","void",["number"]],[!1,"mono_wasm_abort","void",[]],[!0,"mono_wasm_getenv","number",["string"]],[!0,"mono_wasm_set_main_args","void",["number","number"]],[!1,"mono_wasm_enable_on_demand_gc","void",["number"]],[()=>!f,"mono_wasm_profiler_init_aot","void",["string"]],[()=>!m,"mono_wasm_profiler_init_aot","void",["string"]],[!0,"mono_wasm_profiler_init_browser","void",["number"]],[!1,"mono_wasm_exec_regression","number",["number","string"]],[!1,"mono_wasm_invoke_method_bound","number",["number","number","number"]],[!0,"mono_wasm_write_managed_pointer_unsafe","void",["number","number"]],[!0,"mono_wasm_copy_managed_pointer","void",["number","number"]],[!0,"mono_wasm_i52_to_f64","number",["number","number"]],[!0,"mono_wasm_u52_to_f64","number",["number","number"]],[!0,"mono_wasm_f64_to_i52","number",["number","number"]],[!0,"mono_wasm_f64_to_u52","number",["number","number"]],[!0,"mono_wasm_method_get_name","number",["number"]],[!0,"mono_wasm_method_get_full_name","number",["number"]],[!0,"mono_wasm_gc_lock","void",[]],[!0,"mono_wasm_gc_unlock","void",[]],[!0,"mono_wasm_get_i32_unaligned","number",["number"]],[!0,"mono_wasm_get_f32_unaligned","number",["number"]],[!0,"mono_wasm_get_f64_unaligned","number",["number"]],[!0,"mono_jiterp_trace_bailout","void",["number"]],[!0,"mono_jiterp_get_trace_bailout_count","number",["number"]],[!0,"mono_jiterp_value_copy","void",["number","number","number"]],[!0,"mono_jiterp_get_member_offset","number",["number"]],[!0,"mono_jiterp_encode_leb52","number",["number","number","number"]],[!0,"mono_jiterp_encode_leb64_ref","number",["number","number","number"]],[!0,"mono_jiterp_encode_leb_signed_boundary","number",["number","number","number"]],[!0,"mono_jiterp_write_number_unaligned","void",["number","number","number"]],[!0,"mono_jiterp_type_is_byref","number",["number"]],[!0,"mono_jiterp_get_size_of_stackval","number",[]],[!0,"mono_jiterp_parse_option","number",["string"]],[!0,"mono_jiterp_get_options_as_json","number",[]],[!0,"mono_jiterp_get_options_version","number",[]],[!0,"mono_jiterp_adjust_abort_count","number",["number","number"]],[!0,"mono_jiterp_register_jit_call_thunk","void",["number","number"]],[!0,"mono_jiterp_type_get_raw_value_size","number",["number"]],[!0,"mono_jiterp_update_jit_call_dispatcher","void",["number"]],[!0,"mono_jiterp_get_signature_has_this","number",["number"]],[!0,"mono_jiterp_get_signature_return_type","number",["number"]],[!0,"mono_jiterp_get_signature_param_count","number",["number"]],[!0,"mono_jiterp_get_signature_params","number",["number"]],[!0,"mono_jiterp_type_to_ldind","number",["number"]],[!0,"mono_jiterp_type_to_stind","number",["number"]],[!0,"mono_jiterp_imethod_to_ftnptr","number",["number"]],[!0,"mono_jiterp_debug_count","number",[]],[!0,"mono_jiterp_get_trace_hit_count","number",["number"]],[!0,"mono_jiterp_get_polling_required_address","number",[]],[!0,"mono_jiterp_get_rejected_trace_count","number",[]],[!0,"mono_jiterp_boost_back_branch_target","void",["number"]],[!0,"mono_jiterp_is_imethod_var_address_taken","number",["number","number"]],[!0,"mono_jiterp_get_opcode_value_table_entry","number",["number"]],[!0,"mono_jiterp_get_simd_intrinsic","number",["number","number"]],[!0,"mono_jiterp_get_simd_opcode","number",["number","number"]],[!0,"mono_jiterp_get_arg_offset","number",["number","number","number"]],[!0,"mono_jiterp_get_opcode_info","number",["number","number"]],[!0,"mono_wasm_is_zero_page_reserved","number",[]],[!0,"mono_jiterp_is_special_interface","number",["number"]],...gt],wt={};var St=wt;const kt=wt,vt=wt,Et=["void","number",null];function Ut(e,n,r,o){let a=void 0===o&&Et.indexOf(n)>=0&&(!r||r.every((e=>Et.indexOf(e)>=0)))&&t.asm?t.asm[e]:void 0;if(a&&r&&a.length!==r.length&&(dt(`argument count mismatch for cwrap ${e}`),a=void 0),"function"!=typeof a&&(a=t.cwrap(e,n,r,o)),"function"!=typeof a)throw new Error(`cwrap ${e} not found or not a function`);return a}function It(e,t,n){const r=function(e,t,n){let r,o="number"==typeof t?t:0;r="number"==typeof n?o+n:e.length-o;const a={read:function(){if(o>=r)return null;const t=e[o];return o+=1,t}};return Object.defineProperty(a,"eof",{get:function(){return o>=r},configurable:!0,enumerable:!0}),a}(e,t,n);let o="",a=0,s=0,i=0,c=0,l=0,u=0;for(;a=r.read(),s=r.read(),i=r.read(),null!==a;)null===s&&(s=0,l+=1),null===i&&(i=0,l+=1),u=a<<16|s<<8|i<<0,c=(16777215&u)>>18,o+=Tt[c],c=(262143&u)>>12,o+=Tt[c],l<2&&(c=(4095&u)>>6,o+=Tt[c]),2===l?o+="==":1===l?o+="=":(c=(63&u)>>0,o+=Tt[c]);return o}const Tt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],xt=new Map;xt.remove=function(e){const t=this.get(e);return this.delete(e),t};let At,jt,Rt,Lt={},Ct=0,$t=-1;function mono_wasm_runtime_ready(){if(n.mono_wasm_runtime_is_ready=l.mono_wasm_runtime_is_ready=!0,Ct=0,Lt={},$t=-1,globalThis.dotnetDebugger)debugger}function mono_wasm_fire_debugger_agent_message_with_data_to_pause(e){console.assert(!0,`mono_wasm_fire_debugger_agent_message_with_data ${e}`);debugger}function Nt(e){e.length>$t&&(At&&t._free(At),$t=Math.max(e.length,$t,256),At=t._malloc($t));const n=atob(e),r=Ee();for(let e=0;ee.value)),e;if(void 0===t.dimensionsDetails||1===t.dimensionsDetails.length)return e=t.items.map((e=>e.value)),e}const n={};return Object.keys(t).forEach((e=>{const r=t[e];void 0!==r.get?Object.defineProperty(n,r.name,{get:()=>Bt(r.get.id,r.get.commandSet,r.get.command,r.get.buffer),set:function(e){return Dt(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),!0}}):void 0!==r.set?Object.defineProperty(n,r.name,{get:()=>r.value,set:function(e){return Dt(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),!0}}):n[r.name]=r.value})),n}(t,n);const o=null!=e.arguments?e.arguments.map((e=>JSON.stringify(e.value))):[],a=`const fn = ${e.functionDeclaration}; return fn.apply(proxy, [${o}]);`,s=new Function("proxy",a)(r);if(void 0===s)return{type:"undefined"};if(Object(s)!==s)return"object"==typeof s&&null==s?{type:typeof s,subtype:`${s}`,value:null}:{type:typeof s,description:`${s}`,value:`${s}`};if(e.returnByValue&&null==s.subtype)return{type:"object",value:s};if(Object.getPrototypeOf(s)==Array.prototype){const e=Gt(s);return{type:"object",subtype:"array",className:"Array",description:`Array(${s.length})`,objectId:e}}return void 0!==s.value||void 0!==s.subtype?s:s==r?{type:"object",className:"Object",description:"Object",objectId:t}:{type:"object",className:"Object",description:"Object",objectId:Gt(s)}}function Wt(e,t={}){return function(e,t){if(!(e in Lt))throw new Error(`Could not find any object with id ${e}`);const n=Lt[e],r=Object.getOwnPropertyDescriptors(n);t.accessorPropertiesOnly&&Object.keys(r).forEach((e=>{void 0===r[e].get&&Reflect.deleteProperty(r,e)}));const o=[];return Object.keys(r).forEach((e=>{let t;const n=r[e];t="object"==typeof n.value?Object.assign({name:e},n):void 0!==n.value?{name:e,value:Object.assign({type:typeof n.value,description:""+n.value},n)}:void 0!==n.get?{name:e,get:{className:"Function",description:`get ${e} () {}`,type:"function"}}:{name:e,value:{type:"symbol",value:"",description:""}},o.push(t)})),{__value_as_json_string__:JSON.stringify(o)}}(`dotnet:cfo_res:${e}`,t)}function Gt(e){const t="dotnet:cfo_res:"+Ct++;return Lt[t]=e,t}function qt(e){e in Lt&&delete Lt[e]}function Jt(){if(l.enablePerfMeasure)return globalThis.performance.now()}function Yt(e,t,n){if(l.enablePerfMeasure&&e){const r=a?{start:e}:{startTime:e},o=n?`${t}${n} `:t;globalThis.performance.measure(o,r)}}const Xt=[],Zt=new Map,Kt=new Map,Qt=new Map,en=Symbol.for("wasm bound_cs_function"),tn=Symbol.for("wasm bound_js_function"),nn=Symbol.for("wasm imported_js_function"),rn=16;function on(e){const n=t.stackAlloc(rn*e);return n&&n%8==0||w(!1,"Arg alignment"),hn(an(n,0),R.None),hn(an(n,1),R.None),n}function an(e,t){return e||w(!1,"Null args"),e+t*rn}function sn(e,t){return e||w(!1,"Null signatures"),e+32*t+8}function cn(e){return e||w(!1,"Null sig"),ie(e)}function ln(e){return e||w(!1,"Null sig"),ie(e+16)}function un(e){return e||w(!1,"Null sig"),ie(e+20)}function pn(e){return e||w(!1,"Null sig"),ie(e+24)}function dn(e){return e||w(!1,"Null sig"),ie(e+28)}function _n(e){return e||w(!1,"Null signatures"),_e(e+4)}function fn(e){return e||w(!1,"Null signatures"),_e(e)}function mn(e){return e||w(!1,"Null arg"),ie(e+12)}function hn(e,t){e||w(!1,"Null arg"),q(e+12,t)}function bn(e){return e||w(!1,"Null arg"),ie(e)}function gn(e,t){if(e||w(!1,"Null arg"),"boolean"!=typeof t)throw new Error(`Assert failed: Value is not a Boolean: ${t} (${typeof t})`);V(e,t?1:0)}function yn(e,t){e||w(!1,"Null arg"),q(e,t)}function wn(e,t){e||w(!1,"Null arg"),re(e,t.getTime())}function Sn(e,t){e||w(!1,"Null arg"),re(e,t)}function kn(e){return e||w(!1,"Null arg"),ie(e+4)}function vn(e,t){e||w(!1,"Null arg"),q(e+4,t)}function En(e){return e||w(!1,"Null arg"),ie(e+4)}function Un(e,t){e||w(!1,"Null arg"),q(e+4,t)}function In(e){return e||w(!1,"Null arg"),De(e)}function Tn(e){return e||w(!1,"Null arg"),_e(e+8)}function xn(e,t){e||w(!1,"Null arg"),Z(e+8,t)}class ManagedObject{dispose(){Mr(this,x)}get isDisposed(){return this[Lr]===x}toString(){return`CsObject(gc_handle: ${this[Lr]})`}}class ManagedError extends Error{constructor(e){super(e),this.superStack=Object.getOwnPropertyDescriptor(this,"stack"),Object.defineProperty(this,"stack",{get:this.getManageStack})}getSuperStack(){if(this.superStack){if(void 0!==this.superStack.value)return this.superStack.value;if(void 0!==this.superStack.get)return this.superStack.get.call(this)}return super.stack}getManageStack(){if(this.managed_stack)return this.managed_stack;if(u.is_runtime_running()&&!L){const e=this[Lr];if(e!==x){const t=l.javaScriptExports.get_managed_stack_trace(e);if(t)return this.managed_stack=t+"\n"+this.getSuperStack(),this.managed_stack}}return this.getSuperStack()}dispose(){Mr(this,x)}get isDisposed(){return this[Lr]===x}}function An(e){return e==R.Byte?1:e==R.Int32?4:e==R.Int52||e==R.Double?8:e==R.String||e==R.Object||e==R.JSObject?rn:-1}class jn{constructor(e,t,n){this._pointer=e,this._length=t,this._viewType=n}_unsafe_create_view(){const e=0==this._viewType?new Uint8Array(Ee().buffer,this._pointer,this._length):1==this._viewType?new Int32Array(ke().buffer,this._pointer,this._length):2==this._viewType?new Float64Array(xe().buffer,this._pointer,this._length):null;if(!e)throw new Error("NotImplementedException");return e}set(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");const n=this._unsafe_create_view();if(!e||!n||e.constructor!==n.constructor)throw new Error(`Assert failed: Expected ${n.constructor}`);n.set(e,t)}copyTo(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");const n=this._unsafe_create_view();if(!e||!n||e.constructor!==n.constructor)throw new Error(`Assert failed: Expected ${n.constructor}`);const r=n.subarray(t);e.set(r)}slice(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return this._unsafe_create_view().slice(e,t)}get length(){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return this._length}get byteLength(){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return 0==this._viewType?this._length:1==this._viewType?this._length<<2:2==this._viewType?this._length<<3:0}}class Span extends jn{constructor(e,t,n){super(e,t,n),this.is_disposed=!1}dispose(){this.is_disposed=!0}get isDisposed(){return this.is_disposed}}class ArraySegment extends jn{constructor(e,t,n){super(e,t,n)}dispose(){Mr(this,x)}get isDisposed(){return this[Lr]===x}}function Rn(e,t,n){if(t===R.None||t===R.Void)return;let r,o,a,s;o=Xr(un(e)),a=Xr(pn(e)),s=Xr(dn(e));const i=ln(e);r=Ln(i),t===R.Nullable&&(t=i);const c=Ln(t),l=un(e),u=n*rn;return e=>c(e+u,l,r,o,a,s)}function Ln(e){if(e===R.None||e===R.Void)return;const t=Kt.get(e);return t&&"function"==typeof t||w(!1,`ERR41: Unknown converter for type ${e}. ${Jr}`),t}function Cn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),!!ae(e)}(e)}function $n(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ae(e)}(e)}function Nn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),se(e)}(e)}function Dn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),de(e)}(e)}function Bn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),_e(e)}(e)}function On(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ge(e)}(e)}function Mn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),he(e)}(e)}function Fn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),be(e)}(e)}function Pn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ge(e)}(e)}function zn(e){return mn(e)==R.None?null:bn(e)}function Vn(){return null}function Hn(e){return mn(e)===R.None?null:function(e){e||w(!1,"Null arg");const t=ge(e);return new Date(t)}(e)}function Wn(e,t,n,r,o,a){if(mn(e)===R.None)return null;const s=En(e);let i=zr(s);return null==i&&(i=(e,t,i)=>l.javaScriptExports.call_delegate(s,e,t,i,n,r,o,a),i.dispose=()=>{i.isDisposed||(i.isDisposed=!0,Mr(i,s))},i.isDisposed=!1,Or(i,s)),i}function Gn(e,t,n){const r=mn(e);if(r===R.None)return null;if(r!==R.Task){n||(n=Kt.get(r)),n||w(!1,`Unknown sub_converter for type ${R[r]}. ${Jr}`);const t=n(e);return new Promise((e=>e(t)))}const o=kn(e);if(o==T)return new Promise((e=>e(void 0)));const a=Nr(o);a||w(!1,`ERR28: promise not found for js_handle: ${o} `),u.assertIsControllablePromise(a);const s=u.getPromiseController(a),i=s.resolve;return s.resolve=e=>{const t=mn(e);if(t===R.None)return void i(null);n||(n=Kt.get(t)),n||w(!1,`Unknown sub_converter for type ${R[t]}. ${Jr}`);const r=n(e);i(r)},a}function qn(e){if(mn(e)==R.None)return null;const t=In(e);try{return rt(t)}finally{t.release()}}function Jn(e){const t=mn(e);if(t==R.None)return null;if(t==R.JSException)return Nr(kn(e));const n=En(e);let r=zr(n);if(null==r){const t=qn(e);r=new ManagedError(t),Or(r,n)}return r}function Yn(e){return mn(e)==R.None?null:Nr(kn(e))}function Xn(e){const t=mn(e);if(t==R.None)return null;if(t==R.JSObject)return Nr(kn(e));if(t==R.Array){const t=function(e){return e||w(!1,"Null arg"),ie(e+4)}(e);return Kn(e,t)}if(t==R.Object){const t=En(e);if(t===x)return null;let n=zr(t);return n||(n=new ManagedObject,Or(n,t)),n}const n=Kt.get(t);return n||w(!1,`Unknown converter for type ${R[t]}. ${Jr}`),n(e)}function Zn(e,t){return t||w(!1,"Expected valid element_type parameter"),Kn(e,t)}function Kn(e,n){if(mn(e)==R.None)return null;-1==An(n)&&w(!1,`Element type ${R[n]} not supported`);const r=bn(e),o=Tn(e);let a=null;if(n==R.String){a=new Array(o);for(let e=0;e>2,(r>>2)+o).slice();else{if(n!=R.Double)throw new Error(`NotImplementedException ${R[n]}. ${Jr}`);a=xe().subarray(r>>3,(r>>3)+o).slice()}return t._free(r),a}function Qn(e,t){t||w(!1,"Expected valid element_type parameter");const n=bn(e),r=Tn(e);let o=null;if(t==R.Byte)o=new Span(n,r,0);else if(t==R.Int32)o=new Span(n,r,1);else{if(t!=R.Double)throw new Error(`NotImplementedException ${R[t]}. ${Jr}`);o=new Span(n,r,2)}return o}function er(e,t){t||w(!1,"Expected valid element_type parameter");const n=bn(e),r=Tn(e);let o=null;if(t==R.Byte)o=new ArraySegment(n,r,0);else if(t==R.Int32)o=new ArraySegment(n,r,1);else{if(t!=R.Double)throw new Error(`NotImplementedException ${R[t]}. ${Jr}`);o=new ArraySegment(n,r,2)}return Or(o,En(e)),o}let tr;const nr=[null];function rr(e,t){ur.set(e,t),lt(`added module imports '${e}'`)}function or(e,t,n){if(!e)throw new Error("Assert failed: Null reference");e[t]=n}function ar(e,t){if(!e)throw new Error("Assert failed: Null reference");return e[t]}function sr(e,t){if(!e)throw new Error("Assert failed: Null reference");return t in e}function ir(e,t){if(!e)throw new Error("Assert failed: Null reference");return typeof e[t]}function cr(){return globalThis}const lr=new Map,ur=new Map;function pr(e,t){e&&"string"==typeof e||w(!1,"module_name must be string"),t&&"string"==typeof t||w(!1,"module_url must be string");let n=lr.get(e);const r=!n;return r&&(lt(`importing ES6 module '${e}' from '${t}'`),n=import(t),lr.set(e,n)),Gr((async()=>{const o=await n;return r&&(ur.set(e,o),lt(`imported ES6 module '${e}' from '${t}'`)),o}))}function dr(e,t,n){const r=function(e,t){let n="unknown exception";if(t){n=t.toString();const e=t.stack;e&&(e.startsWith(n)?n=e:n+="\n"+e),n=mt(n)}return e&&X(e,1),n}(e,t);ot(r,n)}function _r(e,t){e&&X(e,0),t&&t.clear()}function fr(){u.assert_runtime_running(),l.mono_wasm_bindings_is_ready||w(!1,"The runtime must be initialized.")}const mr="function"==typeof globalThis.WeakRef;function hr(e){return mr?new WeakRef(e):{deref:()=>e,dispose:()=>{e=null}}}const br=new Map,gr=new Map;let yr=0;function wr(e){if(br.has(e))return br.get(e);const t=St.mono_wasm_assembly_load(e);return br.set(e,t),t}function Sr(e,t){yr||(yr=St.mono_wasm_get_corlib());let n=function(e,t,n){let r=gr.get(e);r||gr.set(e,r=new Map);let o=r.get(t);return o||(o=new Map,r.set(t,o)),o.get(n)}(yr,e,t);if(void 0!==n)return n;if(n=St.mono_wasm_assembly_find_class(yr,e,t),!n)throw new Error(`Failed to find corlib class ${e}.${t}`);return function(e,t,n,r){const o=gr.get(e);if(!o)throw new Error("internal error");const a=o.get(t);if(!a)throw new Error("internal error");a.set(n,r)}(yr,e,t,n),n}function kr(e,t){fr();const n=Be();try{if(St.mono_wasm_invoke_method_bound(e,t,n.address))throw new Error("ERR24: Unexpected error: "+rt(n));if(function(e){return e||w(!1,"Null args"),mn(e)!==R.None}(t))throw Jn(an(t,0))}finally{n.release()}}const vr=new Map;async function Er(e){if(fr(),!vr.get(e)){const t=Jt(),n=wr(e);if(!n)throw new Error("Could not find assembly: "+e);const r=St.mono_wasm_assembly_find_class(n,l.runtime_interop_namespace,"__GeneratedInitializer");if(r){const e=St.mono_wasm_assembly_find_method(r,"__Register_",-1);if(e){const t=Be(),n=Be();try{if(St.mono_wasm_invoke_method_ref(e,U,A,t.address,n.address),t.value!==S){const e=rt(n);throw new Error(e)}}finally{t.release(),n.release()}}}else St.mono_wasm_runtime_run_module_cctor(n);Yt(t,"mono.getAssemblyExports:",e)}return vr.get(e)||{}}function Ur(e){const t=e.substring(e.indexOf("[")+1,e.indexOf("]")).trim(),n=(e=e.substring(e.indexOf("]")+1).trim()).substring(e.indexOf(":")+1);let r="",o=e=e.substring(0,e.indexOf(":")).trim();if(-1!=e.indexOf(".")){const t=e.lastIndexOf(".");r=e.substring(0,t),o=e.substring(t+1)}if(!t.trim())throw new Error("No assembly name specified "+e);if(!o.trim())throw new Error("No class name specified "+e);if(!n.trim())throw new Error("No method name specified "+e);return{assembly:t,namespace:r,classname:o,methodname:n}}const Ir="function"==typeof globalThis.FinalizationRegistry;let Tr;const xr=[null],Ar=[];let jr=1;const Rr=new Map;Ir&&(Tr=new globalThis.FinalizationRegistry(Pr));const Lr=Symbol.for("wasm js_owned_gc_handle"),Cr=Symbol.for("wasm cs_owned_js_handle"),$r=Symbol.for("wasm do_not_force_dispose");function Nr(e){return e!==T&&e!==I?xr[e]:null}function Dr(e){if(e[Cr])return e[Cr];const t=Ar.length?Ar.pop():jr++;return xr[t]=e,Object.isExtensible(e)&&(e[Cr]=t),t}function Br(e){const t=xr[e];null!=t&&(void 0!==t[Cr]&&(t[Cr]=void 0),xr[e]=void 0,Ar.push(e))}function Or(e,t){e[Lr]=t,Ir&&Tr.register(e,t,e);const n=hr(e);Rr.set(t,n)}function Mr(e,t){e&&(t=e[Lr],e[Lr]=x,Ir&&Tr.unregister(e)),t!==x&&Rr.delete(t)&&l.javaScriptExports.release_js_owned_object_by_gc_handle(t)}function Fr(e){const t=e[Lr];if(t==x)throw new Error("Assert failed: ObjectDisposedException");return t}function Pr(e){u.is_exited()||Mr(null,e)}function zr(e){if(!e)return null;const t=Rr.get(e);return t?t.deref():null}function Vr(e,t){let n=!1,r=!1,o=0,a=0,s=0,i=0;const c=[...Rr.keys()];for(const e of c){const r=Rr.get(e),o=r.deref();if(Ir&&o&&Tr.unregister(o),o){const a="boolean"==typeof o[$r]&&o[$r];if(t&&pt(`Proxy of C# ${typeof o} with GCHandle ${e} was still alive. ${a?"keeping":"disposing"}.`),a)n=!0;else{const t=u.getPromiseController(o);t&&t.reject(new Error("WebWorker which is origin of the Task is being terminated.")),"function"==typeof o.dispose&&o.dispose(),o[Lr]===e&&(o[Lr]=x),!mr&&r&&r.dispose(),s++}}}n||(Rr.clear(),Ir&&(Tr=new globalThis.FinalizationRegistry(Pr)));for(let e=0;en.resolve(e))).catch((e=>n.reject(e))),t}function qr(e){const t=zr(e);if(!t)return;const n=t.promise;n||w(!1,`Expected Promise for GCHandle ${e}`),u.assertIsControllablePromise(n),u.getPromiseController(n).reject(new Error("OperationCanceledException"))}const Jr="For more information see https://aka.ms/dotnet-wasm-jsinterop";function Yr(e,t,n){if(t===R.None||t===R.Void)return;let r,o,a,s;o=Ln(un(e)),a=Ln(pn(e)),s=Ln(dn(e));const i=ln(e);r=Xr(i),t===R.Nullable&&(t=i);const c=Xr(t),l=un(e),u=n*rn;return(e,t)=>{c(e+u,t,l,r,o,a,s)}}function Xr(e){if(e===R.None||e===R.Void)return;const t=Qt.get(e);return t&&"function"==typeof t||w(!1,`ERR30: Unknown converter for type ${e}`),t}function Zr(e,t){null==t?hn(e,R.None):(hn(e,R.Boolean),gn(e,t))}function Kr(e,t){null==t?hn(e,R.None):(hn(e,R.Byte),function(e,t){e||w(!1,"Null arg"),V(e,t)}(e,t))}function Qr(e,t){null==t?hn(e,R.None):(hn(e,R.Char),function(e,t){e||w(!1,"Null arg"),H(e,t)}(e,t))}function eo(e,t){null==t?hn(e,R.None):(hn(e,R.Int16),function(e,t){e||w(!1,"Null arg"),Y(e,t)}(e,t))}function to(e,t){null==t?hn(e,R.None):(hn(e,R.Int32),function(e,t){e||w(!1,"Null arg"),Z(e,t)}(e,t))}function no(e,t){null==t?hn(e,R.None):(hn(e,R.Int52),function(e,t){if(e||w(!1,"Null arg"),!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not an integer: ${t} (${typeof t})`);re(e,t)}(e,t))}function ro(e,t){null==t?hn(e,R.None):(hn(e,R.BigInt64),function(e,t){e||w(!1,"Null arg"),te(e,t)}(e,t))}function oo(e,t){null==t?hn(e,R.None):(hn(e,R.Double),Sn(e,t))}function ao(e,t){null==t?hn(e,R.None):(hn(e,R.Single),function(e,t){e||w(!1,"Null arg"),ne(e,t)}(e,t))}function so(e,t){null==t?hn(e,R.None):(hn(e,R.IntPtr),yn(e,t))}function io(e,t){if(null==t)hn(e,R.None);else{if(!(t instanceof Date))throw new Error("Assert failed: Value is not a Date");hn(e,R.DateTime),wn(e,t)}}function co(e,t){if(null==t)hn(e,R.None);else{if(!(t instanceof Date))throw new Error("Assert failed: Value is not a Date");hn(e,R.DateTimeOffset),wn(e,t)}}function lo(e,t){if(null==t)hn(e,R.None);else{if(hn(e,R.String),"string"!=typeof t)throw new Error("Assert failed: Value is not a String");uo(e,t)}}function uo(e,t){const n=In(e);try{ot(t,n)}finally{n.release()}}function po(e){hn(e,R.None)}function _o(e,t,n,r,o,a,s){if(null==t)return void hn(e,R.None);if(!(t&&t instanceof Function))throw new Error("Assert failed: Value is not a Function");const i=e=>{const n=an(e,0),c=an(e,1),l=an(e,2),u=an(e,3),p=an(e,4);try{let e,n,d;L&&i.isDisposed,o&&(e=o(l)),a&&(n=a(u)),s&&(d=s(p));const _=t(e,n,d);r&&r(c,_)}catch(e){ho(n,e)}};i[tn]=!0,i.isDisposed=!1,i.dispose=()=>{i.isDisposed=!0},vn(e,Dr(i)),hn(e,R.Function)}class fo{constructor(e){this.promise=e}dispose(){Mr(this,x)}get isDisposed(){return this[Lr]===x}}function mo(e,t,n,r){if(null==t)return void hn(e,R.None);if(!Wr(t))throw new Error("Assert failed: Value is not a Promise");const o=l.javaScriptExports.create_task_callback();Un(e,o),hn(e,R.Task);const a=new fo(t);Or(a,o),t.then((e=>{try{u.assert_runtime_running(),a.isDisposed&&w(!1,"This promise can't be propagated to managed code, because the Task was already freed."),l.javaScriptExports.complete_task(o,null,e,r||go),Mr(a,o)}catch(e){pt("Exception marshalling result of JS promise to CS: ",e)}})).catch((e=>{try{u.assert_runtime_running(),a.isDisposed&&w(!1,"This promise can't be propagated to managed code, because the Task was already freed."),l.javaScriptExports.complete_task(o,e,null,void 0),Mr(a,o)}catch(e){u.is_exited()||pt("Exception marshalling error of JS promise to CS: ",e)}}))}function ho(e,t){if(null==t)hn(e,R.None);else if(t instanceof ManagedError)hn(e,R.Exception),Un(e,Fr(t));else{if("object"!=typeof t&&"string"!=typeof t)throw new Error("Assert failed: Value is not an Error "+typeof t);hn(e,R.JSException),uo(e,t.toString());const n=t[Cr];vn(e,n||Dr(t))}}function bo(e,t){if(null==t)hn(e,R.None);else{if(void 0!==t[Lr])throw new Error(`Assert failed: JSObject proxy of ManagedObject proxy is not supported. ${Jr}`);if("function"!=typeof t&&"object"!=typeof t)throw new Error(`Assert failed: JSObject proxy of ${typeof t} is not supported`);hn(e,R.JSObject),vn(e,Dr(t))}}function go(e,t){if(null==t)hn(e,R.None);else{const n=t[Lr],r=typeof t;if(void 0===n)if("string"===r||"symbol"===r)hn(e,R.String),uo(e,t);else if("number"===r)hn(e,R.Double),Sn(e,t);else{if("bigint"===r)throw new Error("NotImplementedException: bigint");if("boolean"===r)hn(e,R.Boolean),gn(e,t);else if(t instanceof Date)hn(e,R.DateTime),wn(e,t);else if(t instanceof Error)ho(e,t);else if(t instanceof Uint8Array)wo(e,t,R.Byte);else if(t instanceof Float64Array)wo(e,t,R.Double);else if(t instanceof Int32Array)wo(e,t,R.Int32);else if(Array.isArray(t))wo(e,t,R.Object);else{if(t instanceof Int16Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Float32Array)throw new Error("NotImplementedException: TypedArray");if(Wr(t))mo(e,t);else{if(t instanceof Span)throw new Error("NotImplementedException: Span");if("object"!=r)throw new Error(`JSObject proxy is not supported for ${r} ${t}`);{const n=Dr(t);hn(e,R.JSObject),vn(e,n)}}}}else{if(Fr(t),t instanceof ArraySegment)throw new Error("NotImplementedException: ArraySegment. "+Jr);if(t instanceof ManagedError)hn(e,R.Exception),Un(e,n);else{if(!(t instanceof ManagedObject))throw new Error("NotImplementedException "+r+". "+Jr);hn(e,R.Object),Un(e,n)}}}}function yo(e,t,n){n||w(!1,"Expected valid element_type parameter"),wo(e,t,n)}function wo(e,n,r){if(null==n)hn(e,R.None);else{const o=An(r);-1==o&&w(!1,`Element type ${R[r]} not supported`);const a=n.length,s=o*a,i=t._malloc(s);if(r==R.String){if(!Array.isArray(n))throw new Error("Assert failed: Value is not an Array");P(i,s),St.mono_wasm_register_root(i,s,"marshal_array_to_cs");for(let e=0;e>2,(i>>2)+a).set(n)}else{if(r!=R.Double)throw new Error("not implemented");if(!(Array.isArray(n)||n instanceof Float64Array))throw new Error("Assert failed: Value is not an Array or Float64Array");xe().subarray(i>>3,(i>>3)+a).set(n)}yn(e,i),hn(e,R.Array),function(e,t){e||w(!1,"Null arg"),q(e+4,t)}(e,r),xn(e,n.length)}}function So(e,t,n){if(n||w(!1,"Expected valid element_type parameter"),t.isDisposed)throw new Error("Assert failed: ObjectDisposedException");vo(n,t._viewType),hn(e,R.Span),yn(e,t._pointer),xn(e,t.length)}function ko(e,t,n){n||w(!1,"Expected valid element_type parameter");const r=Fr(t);r||w(!1,"Only roundtrip of ArraySegment instance created by C#"),vo(n,t._viewType),hn(e,R.ArraySegment),yn(e,t._pointer),xn(e,t.length),Un(e,r)}function vo(e,t){if(e==R.Byte){if(0!=t)throw new Error("Assert failed: Expected MemoryViewType.Byte")}else if(e==R.Int32){if(1!=t)throw new Error("Assert failed: Expected MemoryViewType.Int32")}else{if(e!=R.Double)throw new Error(`NotImplementedException ${R[e]} `);if(2!=t)throw new Error("Assert failed: Expected MemoryViewType.Double")}}const Eo={now:function(){return Date.now()}};function Uo(e){void 0===globalThis.performance&&(globalThis.performance=Eo),e.require=n.require,e.scriptDirectory=u.scriptDirectory,t.locateFile===t.__locateFile&&(t.locateFile=u.locateFile),e.fetch=u.fetch_like,e.noExitRuntime=a&&!i;const r=e.updateMemoryViews;l.updateMemoryViews=e.updateMemoryViews=()=>{r()}}async function Io(){var e;if(r){if(globalThis.performance===Eo){const{performance:e}=n.require("perf_hooks");globalThis.performance=e}if(n.process=await import("process"),globalThis.crypto||(globalThis.crypto={}),!globalThis.crypto.getRandomValues){let e;try{e=n.require("node:crypto")}catch(e){}e?e.webcrypto?globalThis.crypto=e.webcrypto:e.randomBytes&&(globalThis.crypto.getRandomValues=t=>{t&&t.set(e.randomBytes(t.length))}):globalThis.crypto.getRandomValues=()=>{throw new Error("Using node without crypto support. To enable current operation, either provide polyfill for 'globalThis.crypto.getRandomValues' or enable 'node:crypto' module.")}}}l.subtle=null===(e=globalThis.crypto)||void 0===e?void 0:e.subtle}function To(e){const t=St.mono_wasm_assembly_find_method(l.runtime_interop_exports_class,e,-1);if(!t)throw"Can't find method "+l.runtime_interop_namespace+"."+l.runtime_interop_exports_classname+"."+e;return t}function xo(){if("function"!=typeof globalThis.fetch||"function"!=typeof globalThis.AbortController)throw new Error(r?"Please install `node-fetch` and `node-abort-controller` npm packages to enable HTTP client support. See also https://aka.ms/dotnet-wasm-features":"This browser doesn't support fetch API. Please use a modern browser. See also https://aka.ms/dotnet-wasm-features")}function Ao(){return"undefined"!=typeof Response&&"body"in Response.prototype&&"function"==typeof ReadableStream}function jo(){return xo(),new AbortController}function Ro(e){e.abort()}function Lo(e){e.__abort_controller.abort(),e.__reader&&e.__reader.cancel().catch((e=>{e&&"AbortError"!==e.name&&t.err("Error in http_wasm_abort_response: "+e)}))}function Co(e,t,n,r,o,a,s,i){return $o(e,t,n,r,o,a,new Span(s,i,0).slice())}function $o(e,t,n,r,o,a,s){xo(),e&&"string"==typeof e||w(!1,"expected url string"),t&&n&&Array.isArray(t)&&Array.isArray(n)&&t.length===n.length||w(!1,"expected headerNames and headerValues arrays"),r&&o&&Array.isArray(r)&&Array.isArray(o)&&r.length===o.length||w(!1,"expected headerNames and headerValues arrays");const i=new Headers;for(let e=0;e{const t=await u.fetch_like(e,c);return t.__abort_controller=a,t}))}function No(e){if(!e.__headerNames&&(e.__headerNames=[],e.__headerValues=[],e.headers&&e.headers.entries)){const t=e.headers.entries();for(const n of t)e.__headerNames.push(n[0]),e.__headerValues.push(n[1])}}function Do(e){return No(e),e.__headerNames}function Bo(e){return No(e),e.__headerValues}function Oo(e){return Gr((async()=>{const t=await e.arrayBuffer();return e.__buffer=t,e.__source_offset=0,t.byteLength}))}function Mo(e,t){if(e.__buffer||w(!1,"expected resoved arrayBuffer"),e.__source_offset==e.__buffer.byteLength)return 0;const n=new Uint8Array(e.__buffer,e.__source_offset);t.set(n,0);const r=Math.min(t.byteLength,n.byteLength);return e.__source_offset+=r,r}function Fo(e,t,n){const r=new Span(t,n,0);return Gr((async()=>{if(e.__reader||(e.__reader=e.body.getReader()),e.__chunk||(e.__chunk=await e.__reader.read(),e.__source_offset=0),e.__chunk.done)return 0;const t=e.__chunk.value.byteLength-e.__source_offset;t>0||w(!1,"expected remaining_source to be greater than 0");const n=Math.min(t,r.byteLength),o=e.__chunk.value.subarray(e.__source_offset,e.__source_offset+n);return r.set(o,0),e.__source_offset+=n,t==n&&(e.__chunk=void 0),n}))}let Po,zo=0,Vo=0;function Ho(){if(!u.isChromium)return;const e=(new Date).valueOf(),t=e+36e4;for(let n=Math.max(e+1e3,zo);n0;)--Vo,St.mono_background_exec()}function mono_wasm_schedule_timer_tick(){t.maybeExit(),u.is_runtime_running()&&(Po=void 0,St.mono_wasm_execute_timer())}class qo{constructor(){this.queue=[],this.offset=0}getLength(){return this.queue.length-this.offset}isEmpty(){return 0==this.queue.length}enqueue(e){this.queue.push(e)}dequeue(){if(0===this.queue.length)return;const e=this.queue[this.offset];return this.queue[this.offset]=null,2*++this.offset>=this.queue.length&&(this.queue=this.queue.slice(this.offset),this.offset=0),e}peek(){return this.queue.length>0?this.queue[this.offset]:void 0}drain(e){for(;this.getLength();)e(this.dequeue())}}const Jo=Symbol.for("wasm ws_pending_send_buffer"),Yo=Symbol.for("wasm ws_pending_send_buffer_offset"),Xo=Symbol.for("wasm ws_pending_send_buffer_type"),Zo=Symbol.for("wasm ws_pending_receive_event_queue"),Ko=Symbol.for("wasm ws_pending_receive_promise_queue"),Qo=Symbol.for("wasm ws_pending_open_promise"),ea=Symbol.for("wasm ws_pending_close_promises"),ta=Symbol.for("wasm ws_pending_send_promises"),na=Symbol.for("wasm ws_is_aborted"),ra=Symbol.for("wasm ws_on_closed"),oa=Symbol.for("wasm ws_receive_status_ptr");let aa=!1;const sa=65536,ia=new Uint8Array;function ca(e,t,n,o){!function(){if(s)throw new Error("WebSockets are not supported in shell JS engine.");if("function"!=typeof globalThis.WebSocket)throw new Error(r?"Please install `ws` npm package to enable networking support. See also https://aka.ms/dotnet-wasm-features":"This browser doesn't support WebSocket API. Please use a modern browser. See also https://aka.ms/dotnet-wasm-features")}(),e&&"string"==typeof e||w(!1,"ERR12: Invalid uri "+typeof e),"function"!=typeof o&&w(!1,"ERR12: Invalid onClosed "+typeof o);const a=new globalThis.WebSocket(e,t||void 0),{promise_control:i}=y();a[Zo]=new qo,a[Ko]=new qo,a[Qo]=i,a[ta]=[],a[ea]=[],a[oa]=n,a[ra]=o,a.binaryType="arraybuffer";const c=()=>{a[na]||(i.resolve(a),Ho())},l=e=>{a[na]||(function(e,t){const n=e[Zo],r=e[Ko];if("string"==typeof t.data)n.enqueue({type:0,data:Ke(t.data),offset:0});else{if("ArrayBuffer"!==t.data.constructor.name)throw new Error("ERR19: WebSocket receive expected ArrayBuffer");n.enqueue({type:1,data:new Uint8Array(t.data),offset:0})}if(r.getLength()&&n.getLength()>1)throw new Error("ERR21: Invalid WS state");for(;r.getLength()&&n.getLength();){const t=r.dequeue();ma(e,n,t.buffer_ptr,t.buffer_length),t.resolve()}Ho()}(a,e),Ho())},u=e=>{if(a.removeEventListener("message",l),!a[na]){o(e.code,e.reason),i.reject(new Error(e.reason));for(const e of a[ea])e.resolve();a[Ko].drain((e=>{Z(n,0),Z(n+4,2),Z(n+8,1),e.resolve()})),a[ra].dispose()}},p=e=>{if(a[na])return;a.removeEventListener("message",l);const t=new Error(e.message||"WebSocket error");pt("WebSocket error",t),fa(a,t)};return a.addEventListener("message",l),a.addEventListener("open",c,{once:!0}),a.addEventListener("close",u,{once:!0}),a.addEventListener("error",p,{once:!0}),a.dispose=()=>{a.removeEventListener("message",l),a.removeEventListener("open",c),a.removeEventListener("close",u),a.removeEventListener("error",p),_a(a)},a}function la(e){return e||w(!1,"ERR17: expected ws instance"),e[Qo].promise}function ua(e,n,r,o,a){e||w(!1,"ERR17: expected ws instance");const s=function(e,n,r,o){let a=e[Jo],s=0;const i=n.byteLength;if(a){if(s=e[Yo],r=e[Xo],0!==i){if(s+i>a.length){const t=new Uint8Array(1.5*(s+i+50));t.set(a,0),t.subarray(s).set(n),e[Jo]=a=t}else a.subarray(s).set(n);s+=i,e[Yo]=s}}else o?0!==i&&(a=n,s=i):(0!==i&&(a=n.slice(),s=i,e[Yo]=s,e[Jo]=a),e[Xo]=r);return o?0==s||null==a?ia:0===r?function(e){return void 0===Ge?t.UTF8ArrayToString(e,0,e.byteLength):Ge.decode(e)}(it(a,0,s)):a.subarray(0,s):null}(e,new Uint8Array(Ee().buffer,n,r),o,a);return a&&s?function(e,t){if(e.send(t),e[Jo]=null,e.bufferedAmount{if(0===e.bufferedAmount)r.resolve();else{const t=e.readyState;if(t!=WebSocket.OPEN&&t!=WebSocket.CLOSING)r.reject(new Error(`InvalidState: ${t} The WebSocket is not connected.`));else if(!r.isDone)return globalThis.setTimeout(s,a),void(a=Math.min(1.5*a,1e3))}const t=o.indexOf(r);t>-1&&o.splice(t,1)};return globalThis.setTimeout(s,0),n}(e,s):null}function pa(e,t,n){e||w(!1,"ERR18: expected ws instance");const r=e[Zo],o=e[Ko],a=e.readyState;if(a!=WebSocket.OPEN&&a!=WebSocket.CLOSING)throw new Error(`InvalidState: ${a} The WebSocket is not connected.`);if(r.getLength())return 0!=o.getLength()&&w(!1,"ERR20: Invalid WS state"),ma(e,r,t,n),null;const{promise:s,promise_control:i}=y(),c=i;return c.buffer_ptr=t,c.buffer_length=n,o.enqueue(c),s}function da(e,t,n,r){if(e||w(!1,"ERR19: expected ws instance"),e.readyState==WebSocket.CLOSED)return null;if(r){const{promise:r,promise_control:o}=y();return e[ea].push(o),"string"==typeof n?e.close(t,n):e.close(t),r}return aa||(aa=!0,pt("WARNING: Web browsers do not support closing the output side of a WebSocket. CloseOutputAsync has closed the socket and discarded any incoming messages.")),"string"==typeof n?e.close(t,n):e.close(t),null}function _a(e){var t;e||w(!1,"ERR18: expected ws instance"),e[na]=!0,fa(e,new Error("OperationCanceledException")),null===(t=e[ra])||void 0===t||t.dispose();try{e.close(1e3,"Connection was aborted.")}catch(e){pt("WebSocket error while aborting",e)}}function fa(e,t){const n=e[Qo];n&&n.reject(t);for(const n of e[ea])n.reject(t);for(const n of e[ta])n.reject(t);e[Ko].drain((e=>{e.reject(t)}))}function ma(e,t,n,r){const o=t.peek(),a=Math.min(r,o.data.length-o.offset);if(a>0){const e=o.data.subarray(o.offset,o.offset+a);new Uint8Array(Ee().buffer,n,r).set(e,0),o.offset+=a}const s=o.data.length===o.offset?1:0;s&&t.dequeue();const i=e[oa];Z(i,a),Z(i+4,o.type),Z(i+8,s)}function ha(e){return 1===St.mono_wasm_load_icu_data(e)}function ba(e,n,r){lt(`Loaded:${e.name} as ${e.behavior} size ${r.length} from ${n}`);const o=Jt(),a="string"==typeof e.virtualPath?e.virtualPath:e.name;let s=null;switch(e.behavior){case"dotnetwasm":case"js-module-threads":case"symbols":break;case"resource":case"assembly":case"pdb":u._loaded_files.push({url:n,file:a});case"heap":case"icu":s=ye(r);break;case"vfs":{const e=a.lastIndexOf("/");let n=e>0?a.substr(0,e):null,o=e>0?a.substr(e+1):a;o.startsWith("/")&&(o=o.substr(1)),n?(lt(`Creating directory '${n}'`),t.FS_createPath("/",n,!0,!0)):n="/",lt(`Creating file '${o}' in directory '${n}'`),t.FS_createDataFile(n,o,r,!0,!0,!0);break}default:throw new Error(`Unrecognized asset behavior:${e.behavior}, for asset ${e.name}`)}if("assembly"===e.behavior){if(!St.mono_wasm_add_assembly(a,s,r.length)){const e=u._loaded_files.findIndex((e=>e.file==a));u._loaded_files.splice(e,1)}}else"pdb"===e.behavior?St.mono_wasm_add_assembly(a,s,r.length):"icu"===e.behavior?ha(s)||t.err(`Error loading ICU asset ${e.name}`):"resource"===e.behavior&&St.mono_wasm_add_satellite_assembly(a,e.culture||"",s,r.length);Yt(o,"mono.instantiateAsset:",e.name),++u.actual_instantiated_assets_count}async function ga(e){try{const t=await e.pendingDownloadInternal.response;(await t.text()).split(/[\r\n]/).forEach((e=>{const t=e.split(/:/);t.length<2||(t[1]=t.splice(1).join(":"),_t.set(Number(t[0]),t[1]))})),lt(`Loaded ${_t.size} symbols`)}catch(t){ut(`Error loading symbol file ${e.name}: ${JSON.stringify(t)}`)}}function ya(){return u.loadedFiles}const wa={};function Sa(e){let t=wa[e];if("string"!=typeof t){const n=St.mono_jiterp_get_opcode_info(e,0);wa[e]=t=Qe(n)}return t}const ka=2,va=64,Ea=64,Ua=["Unknown","InterpreterTiering","NullCheck","VtableNotInitialized","Branch","BackwardBranch","ConditionalBranch","ConditionalBackwardBranch","ComplexBranch","ArrayLoadFailed","ArrayStoreFailed","StringOperationFailed","DivideByZero","Overflow","Return","Call","Throw","AllocFailed","SpanOperationFailed","CastFailed","SafepointBranchTaken","UnboxFailed","CallDelegate","Debugging","Icall","UnexpectedRetIp","LeaveCheck"],Ia={};class Ta{constructor(e){this.locals=new Map,this.permanentFunctionTypeCount=0,this.permanentFunctionTypes={},this.permanentFunctionTypesByShape={},this.permanentFunctionTypesByIndex={},this.functionTypesByIndex={},this.permanentImportedFunctionCount=0,this.permanentImportedFunctions={},this.nextImportIndex=0,this.functions=[],this.estimatedExportBytes=0,this.frame=0,this.traceBuf=[],this.branchTargets=new Set,this.constantSlots=[],this.backBranchOffsets=[],this.callHandlerReturnAddresses=[],this.nextConstantSlot=0,this.compressImportNames=!1,this.lockImports=!1,this._assignParameterIndices=e=>{let t=0;for(const n in e)this.locals.set(n,t),t++;return t},this.stack=[new xa],this.clear(e),this.cfg=new Aa(this)}clear(e){this.options=os(),this.stackSize=1,this.inSection=!1,this.inFunction=!1,this.lockImports=!1,this.locals.clear(),this.functionTypeCount=this.permanentFunctionTypeCount,this.functionTypes=Object.create(this.permanentFunctionTypes),this.functionTypesByShape=Object.create(this.permanentFunctionTypesByShape),this.functionTypesByIndex=Object.create(this.permanentFunctionTypesByIndex),this.nextImportIndex=0,this.importedFunctionCount=0,this.importedFunctions=Object.create(this.permanentImportedFunctions);for(const e in this.importedFunctions)this.importedFunctions[e].index=void 0;this.functions.length=0,this.estimatedExportBytes=0,this.argumentCount=0,this.current.clear(),this.traceBuf.length=0,this.branchTargets.clear(),this.activeBlocks=0,this.nextConstantSlot=0,this.constantSlots.length=this.options.useConstants?e:0;for(let e=0;e=this.stack.length&&this.stack.push(new xa),this.current.clear()}_pop(e){if(this.stackSize<=1)throw new Error("Stack empty");const t=this.current;return this.stackSize--,e?(this.appendULeb(t.size),t.copyTo(this.current),null):t.getArrayView(!1).slice(0,t.size)}getWasmImports(){const e={c:this.getConstants(),m:{h:t.asm.memory}},n=this.getImportsToEmit();for(let t=0;t>>0||e>255)throw new Error(`Byte out of range: ${e}`);return this.current.appendU8(e)}appendSimd(e,t){return this.current.appendU8(253),0!=(0|e)||0===e&&!0===t||w(!1,"Expected non-v128_load simd opcode or allowLoad==true"),this.current.appendULeb(e)}appendU32(e){return this.current.appendU32(e)}appendF32(e){return this.current.appendF32(e)}appendF64(e){return this.current.appendF64(e)}appendBoundaryValue(e,t){return this.current.appendBoundaryValue(e,t)}appendULeb(e){return this.current.appendULeb(e)}appendLeb(e){return this.current.appendLeb(e)}appendLebRef(e,t){return this.current.appendLebRef(e,t)}appendBytes(e){return this.current.appendBytes(e)}appendName(e){return this.current.appendName(e)}ret(e){this.ip_const(e),this.appendU8(15)}i32_const(e){this.appendU8(65),this.appendLeb(e)}ptr_const(e){let t=this.options.useConstants?this.constantSlots.indexOf(e):-1;this.options.useConstants&&t<0&&this.nextConstantSlot=0?(this.appendU8(35),this.appendLeb(t)):this.i32_const(e)}ip_const(e){this.appendU8(65),this.appendLeb(e-this.base)}i52_const(e){this.appendU8(66),this.appendLeb(e)}v128_const(e){if(0===e)this.local("v128_zero");else{if("object"!=typeof e)throw new Error("Expected v128_const arg to be 0 or a Uint8Array");{16!==e.byteLength&&w(!1,"Expected v128_const arg to be 16 bytes in size");let t=!0;for(let n=0;n<16;n++)0!==e[n]&&(t=!1);t?this.local("v128_zero"):(this.appendSimd(12),this.appendBytes(e))}}}defineType(e,t,n,r){if(this.functionTypes[e])throw new Error(`Function type ${e} already defined`);if(r&&this.functionTypeCount>this.permanentFunctionTypeCount)throw new Error("New permanent function types cannot be defined after non-permanent ones");let o="";for(const e in t)o+=t[e]+",";o+=n;let a=this.functionTypesByShape[o];"number"!=typeof a&&(a=this.functionTypeCount++,r?(this.permanentFunctionTypeCount++,this.permanentFunctionTypesByShape[o]=a,this.permanentFunctionTypesByIndex[a]=[t,Object.values(t).length,n]):(this.functionTypesByShape[o]=a,this.functionTypesByIndex[a]=[t,Object.values(t).length,n]));const s=[a,t,n,`(${JSON.stringify(t)}) -> ${n}`,r];return r?this.permanentFunctionTypes[e]=s:this.functionTypes[e]=s,a}generateTypeSection(){this.beginSection(1),this.appendULeb(this.functionTypeCount);for(let e=0;ee.index-t.index)),e}_generateImportSection(e){const t=this.getImportsToEmit();if(this.lockImports=!0,!1!==e)throw new Error("function table imports are disabled");this.beginSection(2),this.appendULeb(1+t.length+this.constantSlots.length+(!1!==e?1:0));for(let e=0;e0)throw new Error("New permanent imports cannot be defined after any indexes have been assigned");const a=this.functionTypes[n];if(!a)throw new Error("No function type named "+n);if(r&&!a[4])throw new Error("A permanent import must have a permanent function type");const s=a[0],i=r?this.permanentImportedFunctions:this.importedFunctions;if("number"==typeof o&&(o=Ma().get(o)),"function"!=typeof o&&void 0!==o)throw new Error(`Value passed for imported function ${t} was not a function or valid function pointer or undefined`);return i[t]={index:void 0,typeIndex:s,module:e,name:t,func:o}}markImportAsUsed(e){const t=this.importedFunctions[e];if(!t)throw new Error("No imported function named "+e);"number"!=typeof t.index&&(t.index=this.importedFunctionCount++)}defineFunction(e,t){const n={index:this.functions.length,name:e.name,typeName:e.type,typeIndex:this.functionTypes[e.type][0],export:e.export,locals:e.locals,generator:t,error:null,blob:null};return this.functions.push(n),n.export&&(this.estimatedExportBytes+=n.name.length+8),n}emitImportsAndFunctions(e){let t=0;for(let e=0;e0)throw new Error(`${this.activeBlocks} unclosed block(s) at end of function`);const t=this._pop(e);return this.inFunction=!1,t}block(e,t){const n=this.appendU8(t||2);return e?this.appendU8(e):this.appendU8(64),this.activeBlocks++,n}endBlock(){if(this.activeBlocks<=0)throw new Error("No blocks active");this.activeBlocks--,this.appendU8(11)}arg(e,t){const n="string"==typeof e?this.locals.has(e)?this.locals.get(e):void 0:e;if("number"!=typeof n)throw new Error("No local named "+e);t&&this.appendU8(t),this.appendULeb(n)}local(e,t){const n="string"==typeof e?this.locals.has(e)?this.locals.get(e):void 0:e+this.argumentCount;if("number"!=typeof n)throw new Error("No local named "+e);t?this.appendU8(t):this.appendU8(32),this.appendULeb(n)}appendMemarg(e,t){this.appendULeb(t),this.appendULeb(e)}lea(e,t){"string"==typeof e?this.local(e):this.i32_const(e),this.i32_const(t),this.appendU8(106)}getArrayView(e){if(this.stackSize>1)throw new Error("Jiterpreter block stack not empty");return this.stack[0].getArrayView(e)}getConstants(){const e={};for(let t=0;t=this.capacity)throw new Error("Buffer full");const t=this.size;return Ee()[this.buffer+this.size++]=e,t}appendU32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,0),this.size+=4,t}appendI32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,1),this.size+=4,t}appendF32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,2),this.size+=4,t}appendF64(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,3),this.size+=8,t}appendBoundaryValue(e,t){if(this.size+8>=this.capacity)throw new Error("Buffer full");const n=St.mono_jiterp_encode_leb_signed_boundary(this.buffer+this.size,e,t);if(n<1)throw new Error(`Failed to encode ${e} bit boundary value with sign ${t}`);return this.size+=n,n}appendULeb(e){if("number"!=typeof e&&w(!1,`appendULeb expected number but got ${e}`),e>=0||w(!1,"cannot pass negative value to appendULeb"),e<127){if(this.size+1>=this.capacity)throw new Error("Buffer full");return this.appendU8(e),1}if(this.size+8>=this.capacity)throw new Error("Buffer full");const t=St.mono_jiterp_encode_leb52(this.buffer+this.size,e,0);if(t<1)throw new Error(`Failed to encode value '${e}' as unsigned leb`);return this.size+=t,t}appendLeb(e){if("number"!=typeof e&&w(!1,`appendLeb expected number but got ${e}`),this.size+8>=this.capacity)throw new Error("Buffer full");const t=St.mono_jiterp_encode_leb52(this.buffer+this.size,e,1);if(t<1)throw new Error(`Failed to encode value '${e}' as signed leb`);return this.size+=t,t}appendLebRef(e,t){if(this.size+8>=this.capacity)throw new Error("Buffer full");const n=St.mono_jiterp_encode_leb64_ref(this.buffer+this.size,e,t?1:0);if(n<1)throw new Error("Failed to encode value as leb");return this.size+=n,n}copyTo(e,t){"number"!=typeof t&&(t=this.size),Ee().copyWithin(e.buffer+e.size,this.buffer,this.buffer+t),e.size+=t}appendBytes(e,t){const n=this.size,r=Ee();return e.buffer===r.buffer?("number"!=typeof t&&(t=e.length),r.copyWithin(this.buffer+n,e.byteOffset,e.byteOffset+t),this.size+=t):("number"==typeof t&&(e=new Uint8Array(e.buffer,e.byteOffset,t)),this.getArrayView(!0).set(e,this.size),this.size+=e.length),n}appendName(e){let t=e.length,n=1===e.length?e.charCodeAt(0):-1;if(n>127&&(n=-1),t&&n<0)if(this.encoder)t=this.encoder.encodeInto(e,this.textBuf).written||0;else for(let n=0;n127)throw new Error("Out of range character and no TextEncoder available");this.textBuf[n]=t}this.appendULeb(t),n>=0?this.appendU8(n):t>1&&this.appendBytes(this.textBuf,t)}getArrayView(e){return new Uint8Array(Ee().buffer,this.buffer,e?this.capacity:this.size)}}class Aa{constructor(e){this.segments=[],this.backBranchTargets=null,this.lastSegmentEnd=0,this.overheadBytes=0,this.blockStack=[],this.backDispatchOffsets=[],this.dispatchTable=new Map,this.observedBranchTargets=new Set,this.trace=0,this.builder=e}initialize(e,t,n){this.segments.length=0,this.blockStack.length=0,this.startOfBody=e,this.backBranchTargets=t,this.base=this.builder.base,this.ip=this.lastSegmentStartIp=this.builder.base,this.lastSegmentEnd=0,this.overheadBytes=10,this.dispatchTable.clear(),this.observedBranchTargets.clear(),this.trace=n,this.backDispatchOffsets.length=0}entry(e){this.entryIp=e,this.appendBlob(),1!==this.segments.length&&w(!1,"expected 1 segment"),"blob"!==this.segments[0].type&&w(!1,"expected blob"),this.entryBlob=this.segments[0],this.segments.length=0,this.overheadBytes+=9,this.backBranchTargets&&(this.overheadBytes+=20,this.overheadBytes+=this.backBranchTargets.length)}appendBlob(){this.builder.current.size!==this.lastSegmentEnd&&(this.segments.push({type:"blob",ip:this.lastSegmentStartIp,start:this.lastSegmentEnd,length:this.builder.current.size-this.lastSegmentEnd}),this.lastSegmentStartIp=this.ip,this.lastSegmentEnd=this.builder.current.size,this.overheadBytes+=2)}startBranchBlock(e,t){this.appendBlob(),this.segments.push({type:"branch-block-header",ip:e,isBackBranchTarget:t}),this.overheadBytes+=1}branch(e,t,n){this.observedBranchTargets.add(e),this.appendBlob(),this.segments.push({type:"branch",from:this.ip,target:e,isBackward:t,branchType:n}),this.overheadBytes+=4,t&&(this.overheadBytes+=11),3!==n&&2!==n||(this.overheadBytes+=17)}emitBlob(e,t){const n=t.subarray(e.start,e.start+e.length);this.builder.appendBytes(n)}generate(){this.appendBlob();const e=this.builder.endFunction(!1);this.builder._push(),this.builder.base=this.base,this.emitBlob(this.entryBlob,e),this.backBranchTargets&&(this.builder.i32_const(0),this.builder.local("disp",33),this.builder.block(64,3));for(let e=0;ee-t));for(let e=0;e0&&ut("No back branch targets were reachable after filtering");else if(1===this.backDispatchOffsets.length)this.trace>0&&(this.backDispatchOffsets[0]===this.entryIp?ut(`Exactly one back dispatch offset and it was the entry point 0x${this.entryIp.toString(16)}`):ut(`Exactly one back dispatch offset and it was 0x${this.backDispatchOffsets[0].toString(16)}`)),this.builder.local("disp"),this.builder.appendU8(13),this.builder.appendULeb(this.blockStack.indexOf(this.backDispatchOffsets[0]));else{this.builder.block(64),this.builder.block(64),this.builder.local("disp"),this.builder.appendU8(14),this.builder.appendULeb(this.backDispatchOffsets.length+1),this.builder.appendULeb(1);for(let e=0;e0&&this.blockStack.push(0)}this.trace>1&&ut(`blockStack=${this.blockStack}`);for(let t=0;t1&&ut(`backward br from ${n.from.toString(16)} to ${n.target.toString(16)}: disp=${e}`),this.builder.i32_const(1),this.builder.local("backbranched",33),this.builder.i32_const(e),this.builder.local("disp",33),r=!0}else this.trace>0&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} failed: back branch target not in dispatch table`),t=-1;if(t>=0||r){let e=0;switch(n.branchType){case 2:Da(this.builder,n.from),this.builder.appendU8(12);break;case 3:this.builder.block(64,4),Da(this.builder,n.from),this.builder.appendU8(12),e=1;break;case 0:this.builder.appendU8(12);break;case 1:this.builder.appendU8(13);break;default:throw new Error("Unimplemented branch type")}this.builder.appendULeb(e+t),e&&this.builder.endBlock(),this.trace>1&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} breaking out ${e+t+1} level(s)`)}else{if(this.trace>0){const e=this.base;n.target>=e&&n.target1&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} failed (outside of trace 0x${e.toString(16)} - 0x${this.exitIp.toString(16)})`)}const e=1===n.branchType||3===n.branchType;e&&this.builder.block(64,4),Ba(this.builder,n.target,4),e&&this.builder.endBlock()}break}default:throw new Error("unreachable")}}return this.backBranchTargets&&(this.blockStack.length<=1||w(!1,"expected one or zero entries in the block stack at the end"),this.blockStack.length&&this.blockStack.shift(),this.builder.endBlock()),0!==this.blockStack.length&&w(!1,`expected block stack to be empty at end of function but it was ${this.blockStack}`),this.builder.ip_const(this.exitIp),this.builder.appendU8(15),this.builder.appendU8(11),this.builder._pop(!1)}}let ja,Ra=-1,La=0;const Ca={generation:0,compilation:0},$a={traceCandidates:0,tracesCompiled:0,entryWrappersCompiled:0,jitCallsCompiled:0,directJitCallsCompiled:0,failures:0,bytesGenerated:0,nullChecksEliminated:0,nullChecksFused:0,backBranchesEmitted:0,backBranchesNotEmitted:0,simdFallback:{}},Na=globalThis.performance&&globalThis.performance.now?globalThis.performance.now.bind(globalThis.performance):Date.now;function Da(e,t){e.ptr_const(St.mono_jiterp_get_polling_required_address()),e.appendU8(40),e.appendMemarg(0,2),e.block(64,4),e.local("frame"),e.i32_const(t),e.callImport("safepoint"),e.endBlock()}function Ba(e,t,n){e.ip_const(t),e.options.countBailouts&&(e.i32_const(e.base),e.i32_const(n),e.callImport("bailout")),e.appendU8(15)}function Oa(e,t,n,r){n<=e.options.monitoringLongDistance+2&&(e.local("cinfo"),e.i32_const(n),e.appendU8(54),e.appendMemarg(4,0),e.local("cinfo"),e.local("backbranched"),e.appendU8(54),e.appendMemarg(0,0)),e.ip_const(t),e.options.countBailouts&&(e.i32_const(e.base),e.i32_const(r),e.callImport("bailout")),e.appendU8(15)}function Ma(){if(ja||(ja=t.asm.__indirect_function_table),!ja)throw new Error("Module did not export the indirect function table");return ja}function Fa(e){e||w(!1,"Attempting to set null function into table"),l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const t=Ma();La<=0&&(Ra=t.length,La=512,t.grow(La));const n=Ra;return Ra++,La--,t.set(n,e),n}function Pa(e,t,n,r,o){if(r<=0)return o&&e.appendU8(26),!0;if(r>=va)return!1;if(0!==n)return!1;const a=o?"memop_dest":"pLocals";o&&e.local(a,33);let s=o?0:t;if(e.options.enableSimd){const t=16;for(;r>=t;)e.local(a),e.v128_const(0),e.appendSimd(11),e.appendMemarg(s,0),s+=t,r-=t}for(;r>=8;)e.local(a),e.i52_const(0),e.appendU8(55),e.appendMemarg(s,0),s+=8,r-=8;for(;r>=1;){e.local(a),e.i32_const(0);let t=r%4;switch(t){case 0:t=4,e.appendU8(54);break;case 1:e.appendU8(58);break;case 3:case 2:t=2,e.appendU8(59)}e.appendMemarg(s,0),s+=t,r-=t}return!0}function za(e,t,n){Pa(e,0,t,n,!0)||(e.i32_const(t),e.i32_const(n),e.appendU8(252),e.appendU8(11),e.appendU8(0))}function Va(e,t,n,r,o,a,s){if(r<=0)return o&&(e.appendU8(26),e.appendU8(26)),!0;if(r>=Ea)return!1;o?(a=a||"memop_dest",s=s||"memop_src",e.local(s,33),e.local(a,33)):a&&s||(a=s="pLocals");let i=o?0:t,c=o?0:n;if(e.options.enableSimd){const t=16;for(;r>=t;)e.local(a),e.local(s),e.appendSimd(0,!0),e.appendMemarg(c,0),e.appendSimd(11),e.appendMemarg(i,0),i+=t,c+=t,r-=t}for(;r>=8;)e.local(a),e.local(s),e.appendU8(41),e.appendMemarg(c,0),e.appendU8(55),e.appendMemarg(i,0),i+=8,c+=8,r-=8;for(;r>=1;){let t,n,o=r%4;switch(o){case 0:o=4,t=40,n=54;break;default:case 1:o=1,t=44,n=58;break;case 3:case 2:o=2,t=46,n=59}e.local(a),e.local(s),e.appendU8(t),e.appendMemarg(c,0),e.appendU8(n),e.appendMemarg(i,0),c+=o,i+=o,r-=o}return!0}function Ha(e,t){return Va(e,0,0,t,!0)||(e.i32_const(t),e.appendU8(252),e.appendU8(10),e.appendU8(0),e.appendU8(0)),!0}function Wa(){$a.failures++,$a.failures>=ka&&(ut(`Disabling jiterpreter after ${$a.failures} failures`),rs({enableTraces:!1,enableInterpEntry:!1,enableJitCall:!1}))}const Ga={};function qa(e){const t=Ga[e];return void 0===t?Ga[e]=St.mono_jiterp_get_member_offset(e):t}function Ja(e){const n=t.asm[e];if("function"!=typeof n)throw new Error(`raw cwrap ${e} not found`);return n}const Ya={};function Xa(e){let t=Ya[e];return"number"!=typeof t&&(t=Ya[e]=St.mono_jiterp_get_opcode_value_table_entry(e)),t}function Za(e,t){return[e,e,t]}let Ka;function Qa(){if(!St.mono_wasm_is_zero_page_reserved())return!1;if(!0===Ka)return!1;const e=Ie();for(let t=0;t<8;t++)if(0!==e[t])return!1===Ka&&dt(`Zero page optimizations are enabled but garbage appeared in memory at address ${4*t}: ${e[t]}`),Ka=!0,!1;return Ka=!1,!0}const es={enableTraces:"jiterpreter-traces-enabled",enableInterpEntry:"jiterpreter-interp-entry-enabled",enableJitCall:"jiterpreter-jit-call-enabled",enableBackwardBranches:"jiterpreter-backward-branch-entries-enabled",enableCallResume:"jiterpreter-call-resume-enabled",enableWasmEh:"jiterpreter-wasm-eh-enabled",enableSimd:"jiterpreter-simd-enabled",zeroPageOptimization:"jiterpreter-zero-page-optimization",enableStats:"jiterpreter-stats-enabled",disableHeuristic:"jiterpreter-disable-heuristic",estimateHeat:"jiterpreter-estimate-heat",countBailouts:"jiterpreter-count-bailouts",dumpTraces:"jiterpreter-dump-traces",useConstants:"jiterpreter-use-constants",eliminateNullChecks:"jiterpreter-eliminate-null-checks",noExitBackwardBranches:"jiterpreter-backward-branches-enabled",directJitCalls:"jiterpreter-direct-jit-calls",minimumTraceValue:"jiterpreter-minimum-trace-value",minimumTraceHitCount:"jiterpreter-minimum-trace-hit-count",monitoringPeriod:"jiterpreter-trace-monitoring-period",monitoringShortDistance:"jiterpreter-trace-monitoring-short-distance",monitoringLongDistance:"jiterpreter-trace-monitoring-long-distance",monitoringMaxAveragePenalty:"jiterpreter-trace-monitoring-max-average-penalty",backBranchBoost:"jiterpreter-back-branch-boost",jitCallHitCount:"jiterpreter-jit-call-hit-count",jitCallFlushThreshold:"jiterpreter-jit-call-queue-flush-threshold",interpEntryHitCount:"jiterpreter-interp-entry-hit-count",interpEntryFlushThreshold:"jiterpreter-interp-entry-queue-flush-threshold",wasmBytesLimit:"jiterpreter-wasm-bytes-limit"};let ts=-1,ns={};function rs(e){for(const t in e){const n=es[t];if(!n){dt(`Unrecognized jiterpreter option: ${t}`);continue}const r=e[t];"boolean"==typeof r?St.mono_jiterp_parse_option((r?"--":"--no-")+n):"number"==typeof r?St.mono_jiterp_parse_option(`--${n}=${r}`):dt(`Jiterpreter option must be a boolean or a number but was ${typeof r} '${r}'`)}}function os(){const e=St.mono_jiterp_get_options_version();return e!==ts&&(function(){const e=St.mono_jiterp_get_options_as_json(),n=Qe(e);t._free(e);const r=JSON.parse(n);ns={};for(const e in es){const t=es[e];ns[e]=r[t]}}(),ts=e),ns}const as={2:["V128_I1_NEGATION","V128_I2_NEGATION","V128_I4_NEGATION","V128_ONES_COMPLEMENT","V128_U2_WIDEN_LOWER","V128_U2_WIDEN_UPPER","V128_I1_CREATE_SCALAR","V128_I2_CREATE_SCALAR","V128_I4_CREATE_SCALAR","V128_I8_CREATE_SCALAR","V128_I1_EXTRACT_MSB","V128_I2_EXTRACT_MSB","V128_I4_EXTRACT_MSB","V128_I8_EXTRACT_MSB","V128_I1_CREATE","V128_I2_CREATE","V128_I4_CREATE","V128_I8_CREATE","SplatX1","SplatX2","SplatX4","SplatX8","NegateD1","NegateD2","NegateD4","NegateD8","NegateR4","NegateR8","SqrtR4","SqrtR8","CeilingR4","CeilingR8","FloorR4","FloorR8","TruncateR4","TruncateR8","RoundToNearestR4","RoundToNearestR8","NotANY","AnyTrueANY","AllTrueD1","AllTrueD2","AllTrueD4","AllTrueD8","PopCountU1","BitmaskD1","BitmaskD2","BitmaskD4","BitmaskD8","AddPairwiseWideningI1","AddPairwiseWideningU1","AddPairwiseWideningI2","AddPairwiseWideningU2","AbsI1","AbsI2","AbsI4","AbsI8","AbsR4","AbsR8","ConvertToSingleI4","ConvertToSingleU4","ConvertToSingleR8","ConvertToDoubleLowerI4","ConvertToDoubleLowerU4","ConvertToDoubleLowerR8","ConvertToInt32SaturateR4","ConvertToUInt32SaturateR4","ConvertToInt32SaturateR8","ConvertToUInt32SaturateR8","SignExtendWideningLowerD1","SignExtendWideningLowerD2","SignExtendWideningLowerD4","SignExtendWideningUpperD1","SignExtendWideningUpperD2","SignExtendWideningUpperD4","ZeroExtendWideningLowerD1","ZeroExtendWideningLowerD2","ZeroExtendWideningLowerD4","ZeroExtendWideningUpperD1","ZeroExtendWideningUpperD2","ZeroExtendWideningUpperD4","LoadVector128ANY","LoadScalarVector128X4","LoadScalarVector128X8","LoadScalarAndSplatVector128X1","LoadScalarAndSplatVector128X2","LoadScalarAndSplatVector128X4","LoadScalarAndSplatVector128X8","LoadWideningVector128I1","LoadWideningVector128U1","LoadWideningVector128I2","LoadWideningVector128U2","LoadWideningVector128I4","LoadWideningVector128U4"],3:["V128_I1_ADD","V128_I2_ADD","V128_I4_ADD","V128_R4_ADD","V128_I1_SUB","V128_I2_SUB","V128_I4_SUB","V128_R4_SUB","V128_BITWISE_AND","V128_BITWISE_OR","V128_BITWISE_EQUALITY","V128_BITWISE_INEQUALITY","V128_R4_FLOAT_EQUALITY","V128_R8_FLOAT_EQUALITY","V128_EXCLUSIVE_OR","V128_I1_MULTIPLY","V128_I2_MULTIPLY","V128_I4_MULTIPLY","V128_R4_MULTIPLY","V128_R4_DIVISION","V128_I1_LEFT_SHIFT","V128_I2_LEFT_SHIFT","V128_I4_LEFT_SHIFT","V128_I8_LEFT_SHIFT","V128_I1_RIGHT_SHIFT","V128_I2_RIGHT_SHIFT","V128_I4_RIGHT_SHIFT","V128_I1_URIGHT_SHIFT","V128_I2_URIGHT_SHIFT","V128_I4_URIGHT_SHIFT","V128_I8_URIGHT_SHIFT","V128_U1_NARROW","V128_U1_GREATER_THAN","V128_I1_LESS_THAN","V128_U1_LESS_THAN","V128_I2_LESS_THAN","V128_I1_EQUALS","V128_I2_EQUALS","V128_I4_EQUALS","V128_R4_EQUALS","V128_I8_EQUALS","V128_AND_NOT","V128_U2_LESS_THAN_EQUAL","V128_I1_SHUFFLE","V128_I2_SHUFFLE","V128_I4_SHUFFLE","V128_I8_SHUFFLE","ExtractScalarI1","ExtractScalarU1","ExtractScalarI2","ExtractScalarU2","ExtractScalarD4","ExtractScalarD8","ExtractScalarR4","ExtractScalarR8","SwizzleD1","AddD1","AddD2","AddD4","AddD8","AddR4","AddR8","SubtractD1","SubtractD2","SubtractD4","SubtractD8","SubtractR4","SubtractR8","MultiplyD2","MultiplyD4","MultiplyD8","MultiplyR4","MultiplyR8","DivideR4","DivideR8","DotI2","ShiftLeftD1","ShiftLeftD2","ShiftLeftD4","ShiftLeftD8","ShiftRightArithmeticD1","ShiftRightArithmeticD2","ShiftRightArithmeticD4","ShiftRightArithmeticD8","ShiftRightLogicalD1","ShiftRightLogicalD2","ShiftRightLogicalD4","ShiftRightLogicalD8","AndANY","AndNotANY","OrANY","XorANY","CompareEqualD1","CompareEqualD2","CompareEqualD4","CompareEqualD8","CompareEqualR4","CompareEqualR8","CompareNotEqualD1","CompareNotEqualD2","CompareNotEqualD4","CompareNotEqualD8","CompareNotEqualR4","CompareNotEqualR8","CompareLessThanI1","CompareLessThanU1","CompareLessThanI2","CompareLessThanU2","CompareLessThanI4","CompareLessThanU4","CompareLessThanI8","CompareLessThanR4","CompareLessThanR8","CompareLessThanOrEqualI1","CompareLessThanOrEqualU1","CompareLessThanOrEqualI2","CompareLessThanOrEqualU2","CompareLessThanOrEqualI4","CompareLessThanOrEqualU4","CompareLessThanOrEqualI8","CompareLessThanOrEqualR4","CompareLessThanOrEqualR8","CompareGreaterThanI1","CompareGreaterThanU1","CompareGreaterThanI2","CompareGreaterThanU2","CompareGreaterThanI4","CompareGreaterThanU4","CompareGreaterThanI8","CompareGreaterThanR4","CompareGreaterThanR8","CompareGreaterThanOrEqualI1","CompareGreaterThanOrEqualU1","CompareGreaterThanOrEqualI2","CompareGreaterThanOrEqualU2","CompareGreaterThanOrEqualI4","CompareGreaterThanOrEqualU4","CompareGreaterThanOrEqualI8","CompareGreaterThanOrEqualR4","CompareGreaterThanOrEqualR8","ConvertNarrowingSaturateSignedI2","ConvertNarrowingSaturateSignedI4","ConvertNarrowingSaturateUnsignedI2","ConvertNarrowingSaturateUnsignedI4","MultiplyWideningLowerI1","MultiplyWideningLowerI2","MultiplyWideningLowerI4","MultiplyWideningLowerU1","MultiplyWideningLowerU2","MultiplyWideningLowerU4","MultiplyWideningUpperI1","MultiplyWideningUpperI2","MultiplyWideningUpperI4","MultiplyWideningUpperU1","MultiplyWideningUpperU2","MultiplyWideningUpperU4","AddSaturateI1","AddSaturateU1","AddSaturateI2","AddSaturateU2","SubtractSaturateI1","SubtractSaturateU1","SubtractSaturateI2","SubtractSaturateU2","MultiplyRoundedSaturateQ15I2","MinI1","MinI2","MinI4","MinU1","MinU2","MinU4","MaxI1","MaxI2","MaxI4","MaxU1","MaxU2","MaxU4","AverageRoundedU1","AverageRoundedU2","MinR4","MinR8","MaxR4","MaxR8","PseudoMinR4","PseudoMinR8","PseudoMaxR4","PseudoMaxR8","StoreANY"],4:["V128_CONDITIONAL_SELECT","ReplaceScalarD1","ReplaceScalarD2","ReplaceScalarD4","ReplaceScalarD8","ReplaceScalarR4","ReplaceScalarR8","ShuffleD1","BitwiseSelectANY","LoadScalarAndInsertX1","LoadScalarAndInsertX2","LoadScalarAndInsertX4","LoadScalarAndInsertX8","StoreSelectedScalarX1","StoreSelectedScalarX2","StoreSelectedScalarX4","StoreSelectedScalarX8"]},ss={13:[65,-1],14:[65,0],15:[65,1],16:[65,2],17:[65,3],18:[65,4],19:[65,5],20:[65,6],21:[65,7],22:[65,8]},is={463:168,469:174,464:170,470:176},cs={515:[69,40,54],435:[106,40,54],437:[107,40,54],439:[107,40,54],443:[115,40,54],436:[124,41,55],438:[125,41,55],440:[125,41,55],444:[133,41,55],518:[106,40,54],522:[108,40,54],519:[124,41,55],523:[126,41,55],441:[140,42,56],442:[154,43,57],471:[178,40,56],474:[183,40,57],445:[184,40,57],472:[180,41,56],475:[185,41,57],446:[186,41,57],476:[187,42,57],473:[182,43,56],467:[1,52,55],468:[1,53,55],451:[113,40,54],459:[113,40,54],447:[117,40,54],455:[117,40,54],452:[113,41,54],460:[113,41,54],448:[117,41,54],456:[117,41,54],526:[116,40,54],527:[134,41,55],528:[117,40,54],529:[135,41,55],524:[118,40,54],525:[136,41,55],628:[119,40,54],629:[137,41,55],630:[120,40,54],631:[138,41,55],632:[103,40,54],634:[104,40,54],636:[105,40,54],633:[121,41,55],635:[122,41,55],637:[123,41,55]},ls={401:187,402:1,405:187,406:1,409:187,410:1,413:187,414:1,419:187,420:1,423:187,424:1,433:187,434:1,427:187,428:1,65536:187,65537:187,65535:187,65539:1,65540:1,65538:1},us={351:[106,40,54],369:[106,40,54],371:[106,40,54],355:[107,40,54],359:[108,40,54],373:[108,40,54],375:[108,40,54],363:[109,40,54],367:[110,40,54],387:[111,40,54],391:[112,40,54],381:[113,40,54],383:[114,40,54],385:[115,40,54],395:[116,40,54],397:[117,40,54],393:[118,40,54],352:[124,41,55],356:[125,41,55],360:[126,41,55],364:[127,41,55],388:[129,41,55],368:[128,41,55],392:[130,41,55],382:[131,41,55],384:[132,41,55],386:[133,41,55],396:[134,41,55],398:[135,41,55],394:[136,41,55],353:[146,42,56],357:[147,42,56],361:[148,42,56],365:[149,42,56],354:[160,43,57],358:[161,43,57],362:[162,43,57],366:[163,43,57],399:[70,40,54],403:[71,40,54],421:[72,40,54],407:[74,40,54],425:[76,40,54],411:[78,40,54],431:[73,40,54],417:[75,40,54],429:[77,40,54],415:[79,40,54],400:[81,41,54],404:[82,41,54],422:[83,41,54],408:[85,41,54],426:[87,41,54],412:[89,41,54],432:[84,41,54],418:[86,41,54],430:[88,41,54],416:[90,41,54]},ps={195:399,215:403,203:407,223:417,207:421,231:431,199:411,219:415,211:425,227:429,239:[399,!1,!0],249:[403,!1,!0],243:[407,!1,!0],253:[417,!1,!0],245:[421,!1,!0],257:[431,!1,!0],241:[411,!1,!0],251:[415,!1,!0],247:[425,!1,!0],255:[429,!1,!0],259:[399,65,!0],269:[403,65,!0],263:[407,65,!0],273:[417,65,!0],265:[421,65,!0],277:[431,65,!0],261:[411,65,!0],271:[415,65,!0],267:[425,65,!0],275:[429,65,!0],196:400,216:404,204:408,224:418,208:422,232:432,200:412,220:416,212:426,228:430,260:[400,66,!0],264:[408,66,!0],274:[418,66,!0],266:[422,66,!0],278:[432,66,!0],262:[412,66,!0],272:[416,66,!0],268:[426,66,!0],276:[430,66,!0],197:401,217:65535,205:409,225:419,209:423,233:433,201:413,221:65536,213:427,229:65537,198:402,218:65538,206:410,226:420,210:424,234:434,202:414,222:65539,214:428,230:65540},ds={588:[!0,!1,159],615:[!0,!0,145],575:[!0,!1,155],602:[!0,!0,141],581:[!0,!1,156],608:[!0,!0,142],592:[!0,!1,153],619:[!0,!0,139],570:[!0,!1,"acos"],597:[!0,!0,"acosf"],571:[!0,!1,"acosh"],598:[!0,!0,"acoshf"],576:[!0,!1,"cos"],603:[!0,!0,"cosf"],568:[!0,!1,"asin"],595:[!0,!0,"asinf"],569:[!0,!1,"asinh"],596:[!0,!0,"asinhf"],587:[!0,!1,"sin"],614:[!0,!0,"sinf"],572:[!0,!1,"atan"],599:[!0,!0,"atanf"],573:[!0,!1,"atanh"],600:[!0,!0,"atanhf"],590:[!0,!1,"tan"],617:[!0,!0,"tanf"],577:[!0,!1,"cbrt"],604:[!0,!0,"cbrtf"],579:[!0,!1,"exp"],606:[!0,!0,"expf"],582:[!0,!1,"log"],609:[!0,!0,"logf"],583:[!0,!1,"log2"],610:[!0,!0,"log2f"],584:[!0,!1,"log10"],611:[!0,!0,"log10f"],593:[!1,!1,164],620:[!1,!0,150],594:[!1,!1,165],621:[!1,!0,151],574:[!1,!1,"atan2"],601:[!1,!0,"atan2f"],585:[!1,!1,"pow"],612:[!1,!0,"powf"],390:[!1,!1,"fmod"],389:[!1,!0,"fmodf"]},_s={641:1,642:2,643:4,644:8},fs={641:44,642:46,643:40,644:41},ms={641:58,642:59,643:54,644:55},hs=new Set([20,21,22,23,24,25,26,27,28,29,30]),bs={47:[16,54],48:[16,54],49:[8,54],50:[8,54],51:[4,54],53:[4,56],52:[2,55],54:[2,57]},gs={1:[16,40],2:[8,40],3:[4,40],5:[4,42],4:[2,41],6:[2,43]},ys=new Set([81,84,85,86,87,82,83,88,89,90,91,92,93]),ws={13:[16],14:[8],15:[4],16:[2]},Ss={10:100,11:132,12:164,13:196},ks={6:[44,23],7:[46,26],8:[40,28],9:[41,30]};function vs(e,t){return se(e+2*t)}function Es(e,t){return de(e+2*t)}function Us(e,t){return le(e+2*t)}function Is(e,t){return ue(e+2*t)}function Ts(e){return ue(e+qa(4))}function xs(e,t){const n=ue(Ts(e)+qa(5));return ue(n+t*Ei)}function As(e,t){const n=ue(Ts(e)+qa(12));return ue(n+t*Ei)}function js(e,t,n){if(!n)return!1;for(let r=0;r=40||w(!1,`Expected load opcode but got ${n}`),e.appendU8(n),void 0!==r)e.appendULeb(r);else if(253===n)throw new Error("PREFIX_simd ldloc without a simdOpcode");const o=Fs(t,n,r);e.appendMemarg(t,o)}function zs(e,t,n,r){n>=54||w(!1,`Expected store opcode but got ${n}`),e.appendU8(n),void 0!==r&&e.appendULeb(r);const o=Fs(t,n,r);e.appendMemarg(t,o),Bs(t),void 0!==r&&Bs(t+8)}function Vs(e,t,n){"number"!=typeof n&&(n=512),n>0&&Os(t,n),e.lea("pLocals",t)}function Hs(e,t,n,r){Os(t,r),Pa(e,t,n,r,!1)||(Vs(e,t,r),za(e,n,r))}function Ws(e,t,n,r){if(Os(t,r),Va(e,t,n,r,!1))return!0;Vs(e,t,r),Vs(e,n,0),Ha(e,r)}function Gs(e,t){return 0!==St.mono_jiterp_is_imethod_var_address_taken(Ts(e.frame),t)}function qs(e,t,n,r){if(e.allowNullCheckOptimization&&Cs.has(t)&&!Gs(e,t))return $a.nullChecksEliminated++,void(Ns===t?r&&e.local("cknull_ptr"):(Ps(e,t,40),e.local("cknull_ptr",r?34:33),Ns=t));Ps(e,t,40),e.local("cknull_ptr",34),e.appendU8(69),e.block(64,4),Ba(e,n,2),e.endBlock(),r&&e.local("cknull_ptr"),e.allowNullCheckOptimization&&!Gs(e,t)?(Cs.set(t,n),Ns=t):Ns=-1}function Js(e,t,n){let r,o=54;const a=ss[n];if(a)e.local("pLocals"),e.appendU8(a[0]),r=a[1],e.appendLeb(r);else switch(n){case 23:e.local("pLocals"),r=Es(t,2),e.i32_const(r);break;case 24:e.local("pLocals"),r=Us(t,2),e.i32_const(r);break;case 25:e.local("pLocals"),e.i52_const(0),o=55;break;case 27:e.local("pLocals"),e.appendU8(66),e.appendLebRef(t+4,!0),o=55;break;case 26:e.local("pLocals"),e.i52_const(Es(t,2)),o=55;break;case 28:e.local("pLocals"),e.appendU8(67),e.appendF32(function(e,t){return n=e+2*t,St.mono_wasm_get_f32_unaligned(n);var n}(t,2)),o=56;break;case 29:e.local("pLocals"),e.appendU8(68),e.appendF64(function(e,t){return n=e+2*t,St.mono_wasm_get_f64_unaligned(n);var n}(t,2)),o=57;break;default:return!1}e.appendU8(o);const s=vs(t,1);return e.appendMemarg(s,2),Bs(s),"number"==typeof r?Rs.set(s,r):Rs.delete(s),!0}function Ys(e,t,n){let r=40,o=54;switch(n){case 82:r=44;break;case 83:r=45;break;case 84:r=46;break;case 85:r=47;break;case 86:r=45,o=58;break;case 87:r=47,o=59;break;case 88:break;case 89:r=41,o=55;break;case 90:{const n=vs(t,3);return Ws(e,vs(t,1),vs(t,2),n),!0}case 91:return Ws(e,vs(t,1),vs(t,2),8),Ws(e,vs(t,3),vs(t,4),8),!0;case 92:return Ws(e,vs(t,1),vs(t,2),8),Ws(e,vs(t,3),vs(t,4),8),Ws(e,vs(t,5),vs(t,6),8),!0;case 93:return Ws(e,vs(t,1),vs(t,2),8),Ws(e,vs(t,3),vs(t,4),8),Ws(e,vs(t,5),vs(t,6),8),Ws(e,vs(t,7),vs(t,8),8),!0;default:return!1}return e.local("pLocals"),Ps(e,vs(t,2),r),zs(e,vs(t,1),o),!0}function Xs(e,t,n,r){const o=r>=31&&r<=44||r>=58&&r<=68,a=vs(n,o?2:1),s=vs(n,3),i=vs(n,o?1:2),c=e.allowNullCheckOptimization&&Cs.has(a)&&!Gs(e,a);44!==r&&53!==r&&qs(e,a,n,!1);let l=54,u=40;switch(r){case 31:u=44;break;case 32:u=45;break;case 33:u=46;break;case 34:u=47;break;case 39:case 49:case 35:break;case 51:case 37:u=42,l=56;break;case 52:case 38:u=43,l=57;break;case 45:case 46:l=58;break;case 47:case 48:l=59;break;case 36:case 50:u=41,l=55;break;case 53:return c||e.block(),e.local("pLocals"),e.i32_const(s),e.i32_const(a),e.i32_const(i),e.callImport("stfld_o"),c?(e.appendU8(26),$a.nullChecksEliminated++):(e.appendU8(13),e.appendULeb(0),Ba(e,n,2),e.endBlock()),!0;case 40:{const t=vs(n,4);return Vs(e,i,t),e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),Ha(e,t),!0}case 54:{const r=xs(t,vs(n,4));return e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),Vs(e,i,0),e.ptr_const(r),e.callImport("value_copy"),!0}case 55:{const t=vs(n,4);return e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),Vs(e,i,0),Ha(e,t),!0}case 44:case 43:return e.local("pLocals"),Ps(e,a,40),0!==s&&(e.i32_const(s),e.appendU8(106)),zs(e,i,l),!0;default:return!1}return o&&e.local("pLocals"),e.local("cknull_ptr"),o?(e.appendU8(u),e.appendMemarg(s,0),zs(e,i,l),!0):(Ps(e,i,u),e.appendU8(l),e.appendMemarg(s,0),!0)}function Zs(e,t,n,r){const o=r>=31&&r<=44||r>=58&&r<=68,a=vs(n,1),s=xs(t,vs(n,2)),i=xs(t,vs(n,3));!function(e,t,n){e.block(),e.ptr_const(t),e.appendU8(45),e.appendMemarg(qa(0),0),e.appendU8(13),e.appendULeb(0),Ba(e,n,3),e.endBlock()}(e,s,n);let c=54,l=40;switch(r){case 58:l=44;break;case 59:l=45;break;case 60:l=46;break;case 61:l=47;break;case 66:case 73:case 62:break;case 75:case 64:l=42,c=56;break;case 76:case 65:l=43,c=57;break;case 69:case 70:c=58;break;case 71:case 72:c=59;break;case 63:case 74:l=41,c=55;break;case 77:return e.ptr_const(i),Vs(e,a,0),e.callImport("copy_ptr"),!0;case 67:{const t=vs(n,4);return Vs(e,a,t),e.ptr_const(i),Ha(e,t),!0}case 80:return e.local("pLocals"),e.ptr_const(i),zs(e,a,c),!0;default:return!1}return o?(e.local("pLocals"),e.ptr_const(i),e.appendU8(l),e.appendMemarg(0,0),zs(e,a,c),!0):(e.ptr_const(i),Ps(e,a,l),e.appendU8(c),e.appendMemarg(0,0),!0)}function Ks(e,t,n){let r,o,a,s,i="math_lhs32",c="math_rhs32",l=!1;const u=ls[n];if(u){e.local("pLocals");const r=1==u;return Ps(e,vs(t,2),r?43:42),r||e.appendU8(u),Ps(e,vs(t,3),r?43:42),r||e.appendU8(u),e.i32_const(n),e.callImport("relop_fp"),zs(e,vs(t,1),54),!0}switch(n){case 389:case 390:return ri(e,t,n);default:if(s=us[n],!s)return!1;s.length>3?(r=s[1],o=s[2],a=s[3]):(r=o=s[1],a=s[2])}switch(n){case 363:case 364:case 367:case 368:case 387:case 388:case 391:case 392:{const a=368===n||392===n||364===n||388===n;i=a?"math_lhs64":"math_lhs32",c=a?"math_rhs64":"math_rhs32",e.block(),Ps(e,vs(t,2),r),e.local(i,33),Ps(e,vs(t,3),o),e.local(c,34),l=!0,a&&(e.appendU8(80),e.appendU8(69)),e.appendU8(13),e.appendULeb(0),Ba(e,t,12),e.endBlock(),363!==n&&387!==n&&364!==n&&388!==n||(e.block(),e.local(c),a?e.i52_const(-1):e.i32_const(-1),e.appendU8(a?82:71),e.appendU8(13),e.appendULeb(0),e.local(i),e.appendU8(a?66:65),e.appendBoundaryValue(a?64:32,-1),e.appendU8(a?82:71),e.appendU8(13),e.appendULeb(0),Ba(e,t,13),e.endBlock());break}case 369:case 371:case 373:case 375:Ps(e,vs(t,2),r),e.local(i,34),Ps(e,vs(t,3),o),e.local(c,34),e.i32_const(n),e.callImport(371===n||375===n?"ckovr_u4":"ckovr_i4"),e.block(64,4),Ba(e,t,13),e.endBlock(),l=!0}return e.local("pLocals"),l?(e.local(i),e.local(c)):(Ps(e,vs(t,2),r),Ps(e,vs(t,3),o)),e.appendU8(s[0]),zs(e,vs(t,1),a),!0}function Qs(e,t,n){const r=cs[n];if(!r)return!1;const o=r[1],a=r[2];switch((n<479||n>514)&&e.local("pLocals"),n){case 435:case 437:Ps(e,vs(t,2),o),e.i32_const(1);break;case 439:e.i32_const(0),Ps(e,vs(t,2),o);break;case 443:Ps(e,vs(t,2),o),e.i32_const(-1);break;case 451:case 452:Ps(e,vs(t,2),o),41===o&&e.appendU8(167),e.i32_const(255);break;case 459:case 460:Ps(e,vs(t,2),o),41===o&&e.appendU8(167),e.i32_const(65535);break;case 447:case 448:Ps(e,vs(t,2),o),41===o&&e.appendU8(167),e.i32_const(24),e.appendU8(116),e.i32_const(24);break;case 455:case 456:Ps(e,vs(t,2),o),41===o&&e.appendU8(167),e.i32_const(16),e.appendU8(116),e.i32_const(16);break;case 436:case 438:Ps(e,vs(t,2),o),e.i52_const(1);break;case 440:e.i52_const(0),Ps(e,vs(t,2),o);break;case 444:Ps(e,vs(t,2),o),e.i52_const(-1);break;case 518:case 522:case 526:case 528:case 524:case 628:case 630:Ps(e,vs(t,2),o),e.i32_const(Es(t,3));break;case 519:case 523:case 527:case 529:case 525:case 629:case 631:Ps(e,vs(t,2),o),e.i52_const(Es(t,3));break;default:Ps(e,vs(t,2),o)}return 1!==r[0]&&e.appendU8(r[0]),zs(e,vs(t,1),a),!0}function ei(e,t,n,r){const o=141===r?t+6:t+8,a=As(n,se(o-2));e.local("pLocals"),e.ptr_const(o),e.appendU8(54),e.appendMemarg(a,0),e.callHandlerReturnAddresses.push(o)}function ti(e,t,n,r,o){const a=r>=235&&r<=278;switch(r){case 140:case 141:case 136:case 137:{const a=140===r||141===r,s=t+2*(o=136===r||140===r?Us(t,1):Es(t,1));return o<=0?e.backBranchOffsets.indexOf(s)>=0?(a&&ei(e,t,n,r),e.cfg.branch(s,!0,0),$a.backBranchesEmitted++,!0):(s1&&ut(`${Sa(r)} target 0x${s.toString(16)} before start of trace`):e.cfg.trace>0&&ut(`0x${t.toString(16)} ${Sa(r)} target 0x${s.toString(16)} not found in list `+e.backBranchOffsets.map((e=>"0x"+e.toString(16))).join(", ")),St.mono_jiterp_boost_back_branch_target(s),Ba(e,s,5),$a.backBranchesNotEmitted++,!0):(e.branchTargets.add(s),a&&ei(e,t,n,r),e.cfg.branch(s,!1,0),!0)}case 153:case 151:case 237:case 235:case 154:case 152:{const n=154===r||152===r;o=Es(t,2),Ps(e,vs(t,1),n?41:40),151===r||235===r?e.appendU8(69):152===r?e.appendU8(80):154===r&&(e.appendU8(80),e.appendU8(69));break}default:if(void 0===ps[r])throw new Error(`Unsupported relop branch opcode: ${Sa(r)}`);if(4!==St.mono_jiterp_get_opcode_info(r,1))throw new Error(`Unsupported long branch opcode: ${Sa(r)}`)}if(!o)throw new Error("Branch had no displacement");const s=t+2*o;return o<0?e.backBranchOffsets.indexOf(s)>=0?(e.cfg.branch(s,!0,a?3:1),$a.backBranchesEmitted++):(s1&&ut(`${Sa(r)} target 0x${s.toString(16)} before start of trace`):e.cfg.trace>0&&ut(`0x${t.toString(16)} ${Sa(r)} target 0x${s.toString(16)} not found in list `+e.backBranchOffsets.map((e=>"0x"+e.toString(16))).join(", ")),St.mono_jiterp_boost_back_branch_target(s),e.block(64,4),Ba(e,s,5),e.endBlock(),$a.backBranchesNotEmitted++):(e.branchTargets.add(s),e.cfg.branch(s,!1,a?3:1)),!0}function ni(e,t,n,r){const o=ps[r];if(!o)return!1;const a=Array.isArray(o)?o[0]:o,s=us[a],i=ls[a];if(!s&&!i)return!1;const c=Es(t,3),l=s?s[1]:1===i?43:42;return Ps(e,vs(t,1),l),s||1===i||e.appendU8(i),Array.isArray(o)&&o[1]?(e.appendU8(o[1]),e.appendLeb(Es(t,2))):Ps(e,vs(t,2),l),s||1==i||e.appendU8(i),s?e.appendU8(s[0]):(e.i32_const(a),e.callImport("relop_fp")),ti(e,t,n,r,c)}function ri(e,t,n){let r,o,a,s;const i=vs(t,1),c=vs(t,2),l=vs(t,3),u=ds[n];if(!u)return!1;if(r=u[0],o=u[1],"string"==typeof u[2]?a=u[2]:s=u[2],e.local("pLocals"),r){if(Ps(e,c,o?42:43),s)e.appendU8(s);else{if(!a)throw new Error("internal error");e.callImport(a)}return zs(e,i,o?56:57),!0}if(Ps(e,c,o?42:43),Ps(e,l,o?42:43),s)e.appendU8(s);else{if(!a)throw new Error("internal error");e.callImport(a)}return zs(e,i,o?56:57),!0}function oi(e,t,n){const r=n>=95&&n<=120,o=n>=115&&n<=120,a=n>=103&&n<=114||n>=128&&n<=135||o,s=n>=109&&n<=114||n>=132&&n<=135||o;let i,c,l=-1,u=0,p=1;o?(i=vs(t,1),c=vs(t,2),l=vs(t,3),u=Es(t,4),p=Es(t,5)):a?s?r?(i=vs(t,1),c=vs(t,2),u=Es(t,3)):(i=vs(t,2),c=vs(t,1),u=Es(t,3)):r?(i=vs(t,1),c=vs(t,2),l=vs(t,3)):(i=vs(t,3),c=vs(t,1),l=vs(t,2)):r?(c=vs(t,2),i=vs(t,1)):(c=vs(t,1),i=vs(t,2));let d,_=54;switch(n){case 95:case 103:case 109:case 115:d=44;break;case 96:case 104:case 110:case 116:d=45;break;case 97:case 105:case 111:case 117:d=46;break;case 98:case 106:case 112:case 118:d=47;break;case 121:case 128:case 132:d=40,_=58;break;case 122:case 129:case 133:d=40,_=59;break;case 99:case 107:case 113:case 119:case 123:case 130:case 134:case 127:d=40;break;case 101:case 125:d=42,_=56;break;case 102:case 126:d=43,_=57;break;case 100:case 108:case 114:case 120:case 124:case 131:case 135:d=41,_=55;break;default:return!1}return qs(e,c,t,!1),r?(e.local("pLocals"),e.local("cknull_ptr"),o?(Ps(e,l,40),0!==u&&(e.i32_const(u),e.appendU8(106),u=0),1!==p&&(e.i32_const(p),e.appendU8(108)),e.appendU8(106)):a&&l>=0?(Ps(e,l,40),e.appendU8(106)):u<0&&(e.i32_const(u),e.appendU8(106),u=0),e.appendU8(d),e.appendMemarg(u,0),zs(e,i,_)):127===n?(e.local("cknull_ptr"),Vs(e,i,0),e.callImport("copy_ptr")):(e.local("cknull_ptr"),a&&l>=0?(Ps(e,l,40),e.appendU8(106)):u<0&&(e.i32_const(u),e.appendU8(106),u=0),Ps(e,i,d),e.appendU8(_),e.appendMemarg(u,0)),!0}function ai(e,t,n,r,o){e.block(),Ps(e,r,40),e.local("index",34);let a="cknull_ptr";e.options.zeroPageOptimization&&Qa()?($a.nullChecksFused++,Ps(e,n,40),a="src_ptr",e.local(a,34)):qs(e,n,t,!0),e.appendU8(40),e.appendMemarg(qa(9),2),e.appendU8(73),e.appendU8(13),e.appendULeb(0),Ba(e,t,9),e.endBlock(),e.local(a),e.i32_const(qa(1)),e.appendU8(106),e.local("index"),1!=o&&(e.i32_const(o),e.appendU8(108)),e.appendU8(106)}function si(e,t,n,r){const o=r<=336&&r>=323||348===r,a=vs(n,o?2:1),s=vs(n,o?1:3),i=vs(n,o?3:2);let c,l,u=54;switch(r){case 348:return e.local("pLocals"),qs(e,a,n,!0),e.appendU8(40),e.appendMemarg(qa(9),2),zs(e,s,54),!0;case 334:return e.local("pLocals"),l=vs(n,4),ai(e,n,a,i,l),zs(e,s,54),!0;case 345:return e.block(),Ps(e,vs(n,1),40),Ps(e,vs(n,2),40),Ps(e,vs(n,3),40),e.callImport("stelem_ref"),e.appendU8(13),e.appendULeb(0),Ba(e,n,10),e.endBlock(),!0;case 332:case 328:case 327:case 341:l=4,c=40;break;case 323:l=1,c=44;break;case 324:l=1,c=45;break;case 338:case 337:l=1,c=40,u=58;break;case 325:l=2,c=46;break;case 326:l=2,c=47;break;case 340:case 339:l=2,c=40,u=59;break;case 330:case 343:l=4,c=42,u=56;break;case 329:case 342:l=8,c=41,u=55;break;case 331:case 344:l=8,c=43,u=57;break;case 333:{const t=vs(n,4);return e.local("pLocals"),e.i32_const(vs(n,1)),e.appendU8(106),ai(e,n,a,i,t),Ha(e,t),Os(vs(n,1),t),!0}case 346:{const r=vs(n,5),o=xs(t,vs(n,4));return ai(e,n,a,i,r),Vs(e,s,0),e.ptr_const(o),e.callImport("value_copy"),!0}case 347:{const t=vs(n,5);return ai(e,n,a,i,t),Vs(e,s,0),Ha(e,t),!0}default:return!1}return o?(e.local("pLocals"),ai(e,n,a,i,l),e.appendU8(c),e.appendMemarg(0,0),zs(e,s,u)):(ai(e,n,a,i,l),Ps(e,s,c),e.appendU8(u),e.appendMemarg(0,0)),!0}function ii(){if(void 0!==$s)return $s;try{const e=function(){const e=new Ta(0);e.defineType("test",{},64,!0),e.defineFunction({type:"test",name:"test",export:!0,locals:{}},(()=>{e.i32_const(0),e.appendSimd(17),e.appendU8(26),e.appendU8(11)})),e.appendU32(1836278016),e.appendU32(1),e.generateTypeSection(),e.emitImportsAndFunctions(!1);const t=e.getArrayView();return new WebAssembly.Module(t)}();$s=!!e}catch(e){ut("Disabling WASM SIMD support due to JIT failure",e),$s=!1}return $s}function ci(e,t,n){const r=`${t}_${n.toString(16)}`;return"object"!=typeof e.importedFunctions[r]&&e.defineImportedFunction("s",r,t,!1,n),r}function li(e,t,n,r,o,a){if(e.options.enableSimd&&ii())switch(o){case 2:if(function(e,t,n){const r=St.mono_jiterp_get_simd_opcode(1,n);if(r>=0)return ys.has(n)?(e.local("pLocals"),Ps(e,vs(t,2),40),e.appendSimd(r,!0),e.appendMemarg(0,0),ui(e,t)):(pi(e,t),e.appendSimd(r),ui(e,t)),!0;const o=Ss[n];if(o)return pi(e,t),e.appendSimd(o),zs(e,vs(t,1),54),!0;switch(n){case 6:case 7:case 8:case 9:{const r=ks[n];return e.local("pLocals"),e.v128_const(0),Ps(e,vs(t,2),r[0]),e.appendSimd(r[1]),e.appendU8(0),zs(e,vs(t,1),253,11),!0}case 14:return pi(e,t,7),ui(e,t),!0;case 15:return pi(e,t,8),ui(e,t),!0;case 16:return pi(e,t,9),ui(e,t),!0;case 17:return pi(e,t,10),ui(e,t),!0;default:return!1}}(e,t,a))return!0;break;case 3:if(function(e,t,n){const r=St.mono_jiterp_get_simd_opcode(2,n);if(r>=0){const o=hs.has(n),a=bs[n];if(o)e.local("pLocals"),Ps(e,vs(t,2),253,0),Ps(e,vs(t,3),40),e.appendSimd(r),ui(e,t);else if(Array.isArray(a)){const n=Ls(e,vs(t,3)),o=a[0];if("number"!=typeof n)return dt(`${e.functions[0].name}: Non-constant lane index passed to ExtractScalar`),!1;if(n>=o||n<0)return dt(`${e.functions[0].name}: ExtractScalar index ${n} out of range (0 - ${o-1})`),!1;e.local("pLocals"),Ps(e,vs(t,2),253,0),e.appendSimd(r),e.appendU8(n),zs(e,vs(t,1),a[1])}else di(e,t),e.appendSimd(r),ui(e,t);return!0}switch(n){case 187:return Ps(e,vs(t,2),40),Ps(e,vs(t,3),253,0),e.appendSimd(11),e.appendMemarg(0,0),!0;case 10:case 11:return di(e,t),e.appendSimd(214),e.appendSimd(195),11===n&&e.appendU8(69),zs(e,vs(t,1),54),!0;case 12:case 13:{const r=13===n,o=r?71:65;return e.local("pLocals"),Ps(e,vs(t,2),253,0),e.local("math_lhs128",34),Ps(e,vs(t,3),253,0),e.local("math_rhs128",34),e.appendSimd(o),e.local("math_lhs128"),e.local("math_lhs128"),e.appendSimd(o),e.local("math_rhs128"),e.local("math_rhs128"),e.appendSimd(o),e.appendSimd(80),e.appendSimd(77),e.appendSimd(80),e.appendSimd(r?195:163),zs(e,vs(t,1),54),!0}case 43:{const n=vs(t,3),r=Ls(e,n);return e.local("pLocals"),Ps(e,vs(t,2),253,0),"object"==typeof r?(e.appendSimd(12),e.appendBytes(r)):Ps(e,n,253,0),e.appendSimd(14),ui(e,t),!0}case 44:case 45:return function(e,t,n){const r=16/n,o=vs(t,3),a=Ls(e,o);if(2!==r&&4!==r&&w(!1,"Unsupported shuffle element size"),e.local("pLocals"),Ps(e,vs(t,2),253,0),"object"==typeof a){const t=new Uint8Array(Ui),o=2===r?new Uint16Array(a.buffer,a.byteOffset,n):new Uint32Array(a.buffer,a.byteOffset,n);for(let e=0,a=0;e=0){const o=gs[n],a=ws[n];if(Array.isArray(o)){const n=o[0],a=Ls(e,vs(t,3));if("number"!=typeof a)return dt(`${e.functions[0].name}: Non-constant lane index passed to ReplaceScalar`),!1;if(a>=n||a<0)return dt(`${e.functions[0].name}: ReplaceScalar index ${a} out of range (0 - ${n-1})`),!1;e.local("pLocals"),Ps(e,vs(t,2),253,0),Ps(e,vs(t,4),o[1]),e.appendSimd(r),e.appendU8(a),ui(e,t)}else if(Array.isArray(a)){const n=a[0],o=Ls(e,vs(t,4));if("number"!=typeof o)return dt(`${e.functions[0].name}: Non-constant lane index passed to store method`),!1;if(o>=n||o<0)return dt(`${e.functions[0].name}: Store lane ${o} out of range (0 - ${n-1})`),!1;Ps(e,vs(t,2),40),Ps(e,vs(t,3),253,0),e.appendSimd(r),e.appendMemarg(0,0),e.appendU8(o)}else!function(e,t){e.local("pLocals"),Ps(e,vs(t,2),253,0),Ps(e,vs(t,3),253,0),Ps(e,vs(t,4),253,0)}(e,t),e.appendSimd(r),ui(e,t);return!0}switch(n){case 0:return e.local("pLocals"),Ps(e,vs(t,3),253,0),Ps(e,vs(t,4),253,0),Ps(e,vs(t,2),253,0),e.appendSimd(82),ui(e,t),!0;case 7:{const n=Ls(e,vs(t,4));if("object"!=typeof n)return dt(`${e.functions[0].name}: Non-constant indices passed to PackedSimd.Shuffle`),!1;for(let t=0;t<32;t++){const r=n[t];if(r<0||r>31)return dt(`${e.functions[0].name}: Shuffle lane index #${t} (${r}) out of range (0 - 31)`),!1}return e.local("pLocals"),Ps(e,vs(t,2),253,0),Ps(e,vs(t,3),253,0),e.appendSimd(13),e.appendBytes(n),ui(e,t),!0}default:return!1}}(e,t,a))return!0}switch(n){case 640:if(e.options.enableSimd&&ii()){e.local("pLocals");const n=Ee().slice(t+4,t+4+Ui);e.v128_const(n),ui(e,t),Rs.set(vs(t,1),n)}else Vs(e,vs(t,1),Ui),e.ptr_const(t+4),Ha(e,Ui);return!0;case 641:case 642:case 643:case 644:{const r=_s[n],o=Ui/r,a=vs(t,1),s=vs(t,2),i=fs[n],c=ms[n];for(let t=0;t0&&(xi.push(["trace_eip","trace_eip",Ni]),xi.push(["trace_args","trace_eip",Di]));const e=(e,t)=>{for(let n=0;n>>0,fi.operand2=t>>>0}function Bi(e,t,n,r){if("number"==typeof r)St.mono_jiterp_adjust_abort_count(r,1),r=Sa(r);else{let e=ki[r];"number"!=typeof e?e=1:e++,ki[r]=e}vi[e].abortReason=r}function Oi(e,t){if(!l.runtimeReady)return;if(mi&&void 0===e||(mi=os()),!mi.enableStats&&void 0!==e)return;const n=$a.backBranchesEmitted/($a.backBranchesEmitted+$a.backBranchesNotEmitted)*100,r=St.mono_jiterp_get_rejected_trace_count(),o=mi.eliminateNullChecks?$a.nullChecksEliminated.toString():"off",a=mi.zeroPageOptimization?$a.nullChecksFused.toString()+(Qa()?"":" (disabled)"):"off",s=mi.enableBackwardBranches?`emitted: ${$a.backBranchesEmitted}, failed: ${$a.backBranchesNotEmitted} (${n.toFixed(1)}%)`:": off",i=$a.jitCallsCompiled?mi.directJitCalls?`direct jit calls: ${$a.directJitCallsCompiled} (${($a.directJitCallsCompiled/$a.jitCallsCompiled*100).toFixed(1)}%)`:"direct jit calls: off":"";if(ut(`// jitted ${$a.bytesGenerated} bytes; ${$a.tracesCompiled} traces (${($a.tracesCompiled/$a.traceCandidates*100).toFixed(1)}%) (${r} rejected); ${$a.jitCallsCompiled} jit_calls; ${$a.entryWrappersCompiled} interp_entries`),ut(`// cknulls eliminated: ${o}, fused: ${a}; back-branches ${s}; ${i}`),ut(`// time: ${0|Ca.generation}ms generating, ${0|Ca.compilation}ms compiling wasm.`),!t){if(mi.countBailouts){const e=Object.values(vi);e.sort(((e,t)=>(t.bailoutCount||0)-(e.bailoutCount||0)));for(let e=0;et.hitCount-e.hitCount)),ut("// hottest failed traces:");for(let e=0,n=0;e=0)){if(t[e].abortReason){if(t[e].abortReason.startsWith("mono_icall_")||t[e].abortReason.startsWith("ret."))continue;switch(t[e].abortReason){case"trace-too-small":case"trace-too-big":case"call":case"callvirt.fast":case"calli.nat.fast":case"calli.nat":case"call.delegate":case"newobj":case"newobj_vt":case"newobj_slow":case"switch":case"rethrow":case"end-of-body":case"ret":case"intrins_marvin_block":case"intrins_ascii_chars_to_uppercase":continue}}n++,ut(`${t[e].name} @${t[e].ip} (${t[e].hitCount} hits) ${t[e].abortReason}`)}const n=[];for(const t in e)n.push([t,e[t]]);n.sort(((e,t)=>t[1]-e[1])),ut("// heat:");for(let e=0;e0?ki[t]=n:delete ki[t]}const e=Object.keys(ki);e.sort(((e,t)=>ki[t]-ki[e]));for(let t=0;tOi(e)),15e3)}}let Mi=!1;function Fi(){if(Mi)throw new Error("GC is already locked");Mi=!0}function Pi(){if(!Mi)throw new Error("GC is not locked");Mi=!1}async function zi(e){const t=u.config.resources.lazyAssembly;if(!t)throw new Error("No assemblies have been marked as lazy-loadable. Use the 'BlazorWebAssemblyLazyLoad' item group in your project file to enable lazy loading an assembly.");if(!t[e])throw new Error(`${e} must be marked with 'BlazorWebAssemblyLazyLoad' item group in your project file to allow lazy-loading.`);const n={name:e,hash:t[e],behavior:"assembly"};if(u.loadedAssemblies.some((t=>t.includes(e))))return!1;const r=function(e,t){const n=e.lastIndexOf(".");if(n<0)throw new Error(`No extension to replace in '${e}'`);return e.substring(0,n)+".pdb"}(n.name),o=u.hasDebuggingEnabled(u.config)&&Object.prototype.hasOwnProperty.call(t,r),a=u.retrieve_asset_download(n);let s=null,i=null;if(o){const e=t[r]?u.retrieve_asset_download({name:r,hash:t[r],behavior:"pdb"}):Promise.resolve(null),[n,o]=await Promise.all([a,e]);s=new Uint8Array(n),i=o?new Uint8Array(o):null}else{const e=await a;s=new Uint8Array(e),i=null}return l.javaScriptExports.load_lazy_assembly(s,i),!0}async function Vi(e){const t=u.config.resources.satelliteResources;t&&await Promise.all(e.filter((e=>Object.prototype.hasOwnProperty.call(t,e))).map((e=>{const n=[];for(const r in t[e]){const o={name:r,hash:t[e][r],behavior:"resource",culture:e};n.push(u.retrieve_asset_download(o))}return n})).reduce(((e,t)=>e.concat(t)),new Array).map((async e=>{const t=await e;l.javaScriptExports.load_satellite_assembly(new Uint8Array(t))})))}const Hi=64;let Wi,Gi,qi,Ji=0;const Yi=[],Xi={};function Zi(){return Gi||(Gi=[Za("interp_entry_prologue",Ja("mono_jiterp_interp_entry_prologue")),Za("interp_entry",Ja("mono_jiterp_interp_entry")),Za("unbox",Ja("mono_jiterp_object_unbox")),Za("stackval_from_data",Ja("mono_jiterp_stackval_from_data"))],Gi)}let Ki;function Qi(){if(Yi.length<=0)return;const e=4*Yi.length+1;let t=Wi;if(t?t.clear(e):(Wi=t=new Ta(e),t.defineType("unbox",{pMonoObject:127},127,!0),t.defineType("interp_entry_prologue",{pData:127,this_arg:127},127,!0),t.defineType("interp_entry",{pData:127,res:127},64,!0),t.defineType("stackval_from_data",{type:127,result:127,value:127},64,!0)),t.options.wasmBytesLimit<=$a.bytesGenerated)return void(Yi.length=0);const n=Na();let r=0,o=!0,a=!1;try{t.appendU32(1836278016),t.appendU32(1);for(let e=0;ehc[St.mono_jiterp_type_to_ldind(e)])),this.enableDirect=os().directJitCalls&&!this.noWrapper&&this.wasmNativeReturnType&&(0===this.wasmNativeSignature.length||this.wasmNativeSignature.every((e=>e))),this.enableDirect&&(this.target=this.addr);let i=this.target.toString(16);const c=ic++;this.name=`${this.enableDirect?"jcp":"jcw"}_${i}_${c.toString(16)}`}}function dc(e){let t=cc[e];return t||(e>=cc.length&&(cc.length=e+1),ac||(ac=Ma()),cc[e]=t=ac.get(e)),t}let _c;function fc(){if(void 0!==sc)return sc;try{_c=function(){const e=new Ta(0);e.defineType("jit_call_cb",{cb_data:127},64,!0),e.defineType("do_jit_call",{unused:127,cb_data:127,thrown:127},64,!0),e.defineImportedFunction("i","jit_call_cb","jit_call_cb",!0),e.defineFunction({type:"do_jit_call",name:"do_jit_call_indirect",export:!0,locals:{}},(()=>{e.block(64,6),e.local("cb_data"),e.callImport("jit_call_cb"),e.appendU8(25),e.local("thrown"),e.i32_const(1),e.appendU8(54),e.appendMemarg(0,0),e.endBlock(),e.appendU8(11)})),e.appendU32(1836278016),e.appendU32(1),e.generateTypeSection(),e.emitImportsAndFunctions(!1);const t=e.getArrayView();return new WebAssembly.Module(t)}(),sc=!0}catch(e){ut("Disabling WASM EH support due to JIT failure",e),sc=!1}return sc}function mc(){if(0===uc.length)return;let e=oc;if(e?e.clear(0):(oc=e=new Ta(0),e.defineType("trampoline",{ret_sp:127,sp:127,ftndesc:127,thrown:127},64,!0)),e.options.wasmBytesLimit<=$a.bytesGenerated)return void(uc.length=0);e.options.enableWasmEh&&(fc()||(rs({enableWasmEh:!1}),e.options.enableWasmEh=!1));const t=Na();let n=0,r=!0,o=!1;const a=[];try{ac||(ac=Ma()),e.appendU32(1836278016),e.appendU32(1);for(let t=0;t0?t[0]:void 0}catch(t){throw new Error(`Get culture info failed for culture = ${e} with error: ${t}`)}}const jc="MMMM",Rc="yyyy",Lc="d";function Cc(e,t,n,r){let o=n;const a=t.indexOf(n);if(-1==a||-1!=a&&t.length>a+n.length&&" "!=t[a+n.length]&&","!=t[a+n.length]&&"،"!=t[a+n.length]){const a=r.format(e).toLowerCase();o=t.split(/,| /).filter((e=>!a.split(/,| /).includes(e)&&e[0]==n[0]))[0]}return o}async function $c(e,t){try{const n=await Nc(e,t);return u.mono_exit(n),n}catch(e){try{u.mono_exit(1,e)}catch(e){}return e&&"number"==typeof e.status?e.status:1}}async function Nc(e,n){!function(e,n){const r=n.length+1,o=t._malloc(4*r);let a=0;t.setValue(o+4*a,St.mono_wasm_strdup(e),"i32"),a+=1;for(let e=0;e{const t=setInterval((()=>{1==l.waitForDebugger&&(clearInterval(t),e())}),100)})));const r=Dc(e);return l.javaScriptExports.call_entry_point(r,n)}function Dc(e){u.assert_runtime_running(),fr();const t=wr(e);if(!t)throw new Error("Could not find assembly: "+e);let n=0;1==l.waitForDebugger&&(n=1);const r=St.mono_wasm_assembly_get_entry_point(t,n);if(!r)throw new Error("Could not find entry point for assembly: "+e);return r}let Bc,Oc;const Mc={},Fc=Symbol.for("wasm type");function Pc(e){return"undefined"!=typeof SharedArrayBuffer?e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer:e.buffer instanceof ArrayBuffer}function zc(e,t,n){switch(!0){case null===t:case void 0===t:return void n.clear();case"symbol"==typeof t:case"string"==typeof t:return void sl._create_uri_ref(t,n.address);default:return void Wc(e,t,n)}}function Vc(e){ol();const t=Be();try{return Hc(e,t,!1),t.value}finally{t.release()}}function Hc(e,t,n){if(ol(),j(t))throw new Error("Expected (value, WasmRoot, boolean)");switch(!0){case null===e:case void 0===e:return void t.clear();case"number"==typeof e:{let n;return(0|e)===e?(X(Mc._box_buffer,e),n=Mc._class_int32):e>>>0===e?(G(Mc._box_buffer,e),n=Mc._class_uint32):(re(Mc._box_buffer,e),n=Mc._class_double),void kt.mono_wasm_box_primitive_ref(n,Mc._box_buffer,8,t.address)}case"string"==typeof e:return void ot(e,t);case"symbol"==typeof e:return void at(e,t);case"boolean"==typeof e:return z(Mc._box_buffer,e),void kt.mono_wasm_box_primitive_ref(Mc._class_boolean,Mc._box_buffer,4,t.address);case!0===Wr(e):return void function(e,t){if(!e)return t.clear(),null;const n=Dr(e),r=sl._create_tcs(),o={tcs_gc_handle:r};Or(o,r),e.then((e=>{sl._set_tcs_result_ref(r,e)}),(e=>{sl._set_tcs_failure(r,e?e.toString():"")})).finally((()=>{Br(n),Mr(o,r)})),sl._get_tcs_task_ref(r,t.address)}(e,t);case"Date"===e.constructor.name:return void sl._create_date_time_ref(e.getTime(),t.address);default:return void Wc(n,e,t)}}function Wc(e,t,n){if(n.clear(),null!=t)if(void 0===t[Lr]){if(t[Cr]&&(function(e,t,n){e!==T&&e!==I?sl._get_cs_owned_object_by_js_handle_ref(e,t?1:0,n):X(n,0)}(t[Cr],e,n.address),n.value||delete t[Cr]),!n.value){const r=t[Fc],o=void 0===r?0:r,a=Dr(t);sl._create_cs_owned_proxy_ref(a,o,e?1:0,n.address)}}else bl(Fr(t),n.address)}function Gc(e,n){if(!Pc(e)||!e.BYTES_PER_ELEMENT)throw new Error("Object '"+e+"' is not a typed array");{const r=e[Fc],o=function(e){ol();const n=e.length*e.BYTES_PER_ELEMENT,r=t._malloc(n),o=Ee(),a=new Uint8Array(o.buffer,r,n);return a.set(new Uint8Array(e.buffer,e.byteOffset,n)),a}(e);kt.mono_wasm_typed_array_new_ref(o.byteOffset,e.length,e.BYTES_PER_ELEMENT,r,n.address),t._free(o.byteOffset)}}function qc(e){const t=Be();try{return Gc(e,t),t.value}finally{t.release()}}function Jc(e){if("number"!=typeof e)throw new Error(`Expected numeric value for enum argument, got '${e}'`);return 0|e}const Yc=/[^A-Za-z0-9_$]/g,Xc=new Map,Zc=new Map,Kc=new Map;function Qc(e,t,n,r){let o=null,a=null,s=null;if(r){s=Object.keys(r),a=new Array(s.length);for(let e=0,t=s.length;e=512)throw new Error(`Got marshaling error ${t} when attempting to unbox object at address ${e.value} (root located at ${e.address})`);let r=v;if((4===t||7==t)&&(r=ie(n),r<1024))throw new Error(`Got invalid MonoType ${r} for object at address ${e.value} (root located at ${e.address})`);return function(e,t,n,r){switch(t){case 0:return null;case 26:case 27:throw new Error("int64 not available");case 3:case 29:return rt(e);case 4:throw new Error("no idea on how to unbox value types");case 5:return function(e){return e.value===S?null:function(e){let t=zr(e);if(t)Fr(t);else{t=function(...e){return Fr(t),(0,t[pl])(...e)};const n=Be();bl(e,n.address);try{if(void 0===t[pl]){const r=kt.mono_wasm_get_delegate_invoke_ref(n.address),o=el(r,rl(r,n),!0);if(t[pl]=o.bind({this_arg_gc_handle:e}),!t[pl])throw new Error("System.Delegate Invoke method can not be resolved.")}}finally{n.release()}Or(t,e)}return t}(sl._get_js_owned_object_gc_handle_ref(e.address))}(e);case 6:return function(e){if(e.value===S)return null;if(!Hr)throw new Error("Promises are not supported thus 'System.Threading.Tasks.Task' can not work in this context.");const t=sl._get_js_owned_object_gc_handle_ref(e.address);let n=zr(t);if(!n){const r=()=>Mr(n,t),{promise:o,promise_control:a}=y(r,r);n=o,sl._setup_js_cont_ref(e.address,a),Or(n,t)}return n}(e);case 7:return function(e){if(e.value===S)return null;const t=sl._try_get_cs_owned_object_js_handle_ref(e.address,0);if(t){if(t===I)throw new Error("Cannot access a disposed JSObject at "+e.value);return Nr(t)}const n=sl._get_js_owned_object_gc_handle_ref(e.address);let r=zr(n);return j(r)&&(r=new ManagedObject,Or(r,n)),r}(e);case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:throw new Error("Marshaling of primitive arrays are not supported.");case 20:return new Date(sl._get_date_value_ref(e.address));case 21:case 22:return sl._object_to_string_ref(e.address);case 23:return function(e){return Nr(sl._get_cs_owned_object_js_handle_ref(e.address,0))}(e);case 30:return;default:throw new Error(`no idea on how to unbox object of MarshalType ${t} at offset ${e.value} (root address is ${e.address})`)}}(e,t)}function fl(e){if(0===e.value)return;const t=Mc._unbox_buffer,n=kt.mono_wasm_try_unbox_primitive_and_get_type_ref(e.address,t,Mc._unbox_buffer_size);switch(n){case 1:return _e(t);case 25:case 32:return ie(t);case 24:return be(t);case 2:return ge(t);case 8:return 0!==_e(t);case 28:return String.fromCharCode(_e(t));case 0:return null;default:return _l(e,n,t)}}function ml(e){if(ol(),e===k)return null;const t=Be(e);try{return hl(t)}finally{t.release()}}function hl(e){if(e.value===k)return null;const t=e.address,n=Be(),r=n.address;try{const e=kt.mono_wasm_array_length_ref(t),a=new Array(e);for(let s=0;s0&&Array.isArray(e[0])&&(e[0]=function(e,t,n){const r=Be();kt.mono_wasm_string_array_new_ref(e.length,r.address);const o=Be(S),a=r.address,s=o.address;try{for(let t=0;tnew RegExp("^((?![0-9]).)*$").test(e)));return e&&0!=e.length?e.join(" "):""}return o}function El(e){try{return new Intl.Locale(e).weekInfo}catch(t){try{return new Intl.Locale(e).getWeekInfo()}catch(e){return}}}const Ul=[function(e){Po&&(globalThis.clearTimeout(Po),Po=void 0),Po=t.safeSetTimeout(mono_wasm_schedule_timer_tick,e)},function(e,t,n,r,o){if(!0!==l.mono_wasm_runtime_is_ready)return;const a=Ee(),s=0!==e?Qe(e).concat(".dll"):"",i=It(new Uint8Array(a.buffer,t,n));let c;r&&(c=It(new Uint8Array(a.buffer,r,o))),zt({eventName:"AssemblyLoaded",assembly_name:s,assembly_b64:i,pdb_b64:c})},function(e,t){const r=Qe(t);n.logging&&"function"==typeof n.logging.debugger&&n.logging.debugger(e,r)},function(e,t,n,r){const o={res_ok:e,res:{id:t,value:It(new Uint8Array(Ee().buffer,n,r))}};xt.has(t)&&pt(`Adding an id (${t}) that already exists in commands_received`),xt.set(t,o)},function mono_wasm_fire_debugger_agent_message_with_data(e,t){mono_wasm_fire_debugger_agent_message_with_data_to_pause(It(new Uint8Array(Ee().buffer,e,t)))},mono_wasm_fire_debugger_agent_message_with_data_to_pause,function(){++Vo,t.safeSetTimeout(Go,0)},function(e,n,r,o,a,s,i){if(r||w(!1,"expected instruction pointer"),mi||(mi=os()),!mi.enableTraces)return 1;if(mi.wasmBytesLimit<=$a.bytesGenerated)return 1;let c,u=vi[r];if(u||(vi[r]=u=new yi(r,o,i)),$a.traceCandidates++,mi.estimateHeat||bi.length>0||u.isVerbose){const e=St.mono_wasm_method_get_full_name(n);c=Qe(e),t._free(e)}const p=Qe(St.mono_wasm_method_get_name(n));u.name=c||p;const d=ue(qa(4)+e),_=ue(qa(11)+d),f=ue(qa(10)+d);let m=_?new Uint16Array(Ee().buffer,f,_):null;if(m&&r!==a){const e=(r-a)/2;let t=!1;for(let n=0;ne){t=!0;break}t||(m=null)}const h=function(e,t,n,r,o,a,s){let i=Ti;i?i.clear(8):(Ti=i=new Ta(8),function(e){e.defineType("trace",{frame:127,pLocals:127,cinfo:127},127,!0),e.defineType("bailout",{retval:127,base:127,reason:127},127,!0),e.defineType("copy_ptr",{dest:127,src:127},64,!0),e.defineType("value_copy",{dest:127,src:127,klass:127},64,!0),e.defineType("entry",{imethod:127},127,!0),e.defineType("strlen",{ppString:127,pResult:127},127,!0),e.defineType("getchr",{ppString:127,pIndex:127,pResult:127},127,!0),e.defineType("getspan",{destination:127,span:127,index:127,element_size:127},127,!0),e.defineType("overflow_check_i4",{lhs:127,rhs:127,opcode:127},127,!0),e.defineType("mathop_d_d",{value:124},124,!0),e.defineType("mathop_dd_d",{lhs:124,rhs:124},124,!0),e.defineType("mathop_f_f",{value:125},125,!0),e.defineType("mathop_ff_f",{lhs:125,rhs:125},125,!0),e.defineType("fmaf",{x:125,y:125,z:125},125,!0),e.defineType("fma",{x:124,y:124,z:124},124,!0),e.defineType("trace_eip",{traceId:127,eip:127},64,!0),e.defineType("newobj_i",{ppDestination:127,vtable:127},127,!0),e.defineType("newstr",{ppDestination:127,length:127},127,!0),e.defineType("localloc",{destination:127,len:127,frame:127},64,!0),e.defineType("ld_del_ptr",{ppDestination:127,ppSource:127},64,!0),e.defineType("ldtsflda",{ppDestination:127,offset:127},64,!0),e.defineType("gettype",{destination:127,source:127},127,!0),e.defineType("castv2",{destination:127,source:127,klass:127,opcode:127},127,!0),e.defineType("hasparent",{klass:127,parent:127},127,!0),e.defineType("imp_iface",{vtable:127,klass:127},127,!0),e.defineType("imp_iface_s",{obj:127,vtable:127,klass:127},127,!0),e.defineType("box",{vtable:127,destination:127,source:127,vt:127},64,!0),e.defineType("conv",{destination:127,source:127,opcode:127},127,!0),e.defineType("relop_fp",{lhs:124,rhs:124,opcode:127},127,!0),e.defineType("safepoint",{frame:127,ip:127},64,!0),e.defineType("hashcode",{ppObj:127},127,!0),e.defineType("try_hash",{ppObj:127},127,!0),e.defineType("hascsize",{ppObj:127},127,!0),e.defineType("hasflag",{klass:127,dest:127,sp1:127,sp2:127},64,!0),e.defineType("array_rank",{destination:127,source:127},127,!0),e.defineType("stfld_o",{locals:127,fieldOffsetBytes:127,targetLocalOffsetBytes:127,sourceLocalOffsetBytes:127},127,!0),e.defineType("notnull",{ptr:127,expected:127,traceIp:127,ip:127},64,!0),e.defineType("cmpxchg_i32",{dest:127,newVal:127,expected:127},127,!0),e.defineType("cmpxchg_i64",{dest:127,newVal:127,expected:127,oldVal:127},64,!0),e.defineType("transfer",{displacement:127,trace:127,frame:127,locals:127,cinfo:127},127,!0),e.defineType("stelem_ref",{o:127,aindex:127,ref:127},127,!0),e.defineType("simd_p_p",{arg0:127,arg1:127},64,!0),e.defineType("simd_p_pp",{arg0:127,arg1:127,arg2:127},64,!0),e.defineType("simd_p_ppp",{arg0:127,arg1:127,arg2:127,arg3:127},64,!0);const t=$i();for(let n=0;na.indexOf(e)>=0))>=0;h&&!a&&w(!1,"Expected methodFullName if trace is instrumented");const b=h?Si++:0;h&&(ut(`instrumenting: ${a}`),wi[b]=new gi(a)),i.compressImportNames=!h;try{i.appendU32(1836278016),i.appendU32(1),i.generateTypeSection();const t={disp:127,cknull_ptr:127,dest_ptr:127,src_ptr:127,memop_dest:127,memop_src:127,index:127,count:127,math_lhs32:127,math_rhs32:127,math_lhs64:126,math_rhs64:126,temp_f32:125,temp_f64:124,backbranched:127};i.options.enableSimd&&(t.v128_zero=123,t.math_lhs128=123,t.math_rhs128=123);let o=!0,a=0;if(i.defineFunction({type:"trace",name:u,export:!0,locals:t},(()=>{if(i.base=n,i.frame=e,662!==se(n))throw new Error(`Expected *ip to be MINT_TIER_PREPARE_JITERPRETER but was ${se(n)}`);return i.cfg.initialize(r,s,h?1:0),a=function(e,t,n,r,o,a,s,i){let c=!0,l=!1,u=!0,p=!1,d=!1,_=!1,f=0,m=0,h=0;const b=n;Ds();let g=n+=2*St.mono_jiterp_get_opcode_info(664,1);for(a.cfg.entry(n);n&&n;){if(a.cfg.ip=n,n>=o){Bi(b,0,0,"end-of-body"),s&&ut(`instrumented trace ${t} exited at end of body @${n.toString(16)}`);break}const y=3840-a.bytesGeneratedSoFar-a.cfg.overheadBytes;if(a.size>=y){Bi(b,0,0,"trace-too-big"),s&&ut(`instrumented trace ${t} exited because of size limit at @${n.toString(16)} (spaceLeft=${y}b)`);break}let S=se(n);const k=St.mono_jiterp_get_opcode_info(S,2),v=St.mono_jiterp_get_opcode_info(S,3),E=St.mono_jiterp_get_opcode_info(S,1),U=S>=645&&S<=647,I=U?S-645+2:0,T=U?vs(n,1+I):0;S>=0&&S<673||w(!1,`invalid opcode ${S}`);const x=U?as[I][T]:Sa(S),A=n,j=a.options.noExitBackwardBranches&&js(n,r,i),R=a.branchTargets.has(n),L=j||R||c&&i,C=h+m+a.branchTargets.size;let $=!1,N=Xa(S);switch(j&&a.backBranchOffsets.push(n),L&&(d=!1,_=!1,Ms(a,n,j),l=!0,u=!0,Ds(),h=0),N<-1&&l&&(N=-2===N?2:0),c=!1,279===S||(hi.indexOf(S)>=0?(Ba(a,n,23),S=666):d&&(S=666)),S){case 666:d&&(_||a.appendU8(0),_=!0);break;case 321:case 322:Hs(a,vs(n,1),0,vs(n,2));break;case 320:Vs(a,vs(n,1)),Ps(a,vs(n,2),40),a.local("frame"),a.callImport("localloc");break;case 294:Ps(a,vs(n,1),40),za(a,0,vs(n,2));break;case 318:{const e=vs(n,3),t=vs(n,2),r=vs(n,1),o=Ls(a,e);0!==o&&("number"!=typeof o?(Ps(a,e,40),a.local("count",34),a.block(64,4)):(a.i32_const(o),a.local("count",33)),Ps(a,r,40),a.local("dest_ptr",34),a.appendU8(69),Ps(a,t,40),a.local("src_ptr",34),a.appendU8(69),a.appendU8(114),a.block(64,4),Ba(a,n,2),a.endBlock(),"number"==typeof o&&Va(a,0,0,o,!1,"dest_ptr","src_ptr")||(a.local("dest_ptr"),a.local("src_ptr"),a.local("count"),a.appendU8(252),a.appendU8(10),a.appendU8(0),a.appendU8(0)),"number"!=typeof o&&a.endBlock());break}case 319:{const e=vs(n,3),t=vs(n,2);qs(a,vs(n,1),n,!0),Ps(a,t,40),Ps(a,e,40),a.appendU8(252),a.appendU8(11),a.appendU8(0);break}case 151:case 153:case 235:case 237:case 152:case 154:case 137:case 140:case 141:ti(a,n,e,S)?l=!0:n=0;break;case 537:{const e=vs(n,2),t=vs(n,1);e!==t?(a.local("pLocals"),qs(a,e,n,!0),zs(a,t,54)):qs(a,e,n,!1),a.allowNullCheckOptimization&&Cs.set(t,n),$=!0;break}case 626:case 627:{const t=ue(e+qa(4));a.ptr_const(t),a.callImport("entry"),a.block(64,4),Ba(a,n,1),a.endBlock();break}case 664:if(N=0,f>=a.options.minimumTraceValue&&!a.options.noExitBackwardBranches&&(!l||u)){const e=Is(n,1);a.ip_const(n),a.i32_const(e),a.local("frame"),a.local("pLocals"),a.local("cinfo"),a.callImport("transfer"),a.appendU8(15),n=0}break;case 146:Da(a,n);break;case 94:{a.local("pLocals");const e=vs(n,2);Gs(a,e)||dt(`${t}: Expected local ${e} to have address taken flag`),Vs(a,e),zs(a,vs(n,1),54);break}case 280:case 308:case 309:case 555:{a.local("pLocals");let t=xs(e,vs(n,2));308===S&&(t=St.mono_jiterp_imethod_to_ftnptr(t)),a.ptr_const(t),zs(a,vs(n,1),54);break}case 313:{const t=xs(e,vs(n,3));Ps(a,vs(n,1),40),Ps(a,vs(n,2),40),a.ptr_const(t),a.callImport("value_copy");break}case 314:{const e=vs(n,3);Ps(a,vs(n,1),40),Ps(a,vs(n,2),40),Ha(a,e);break}case 315:{const e=vs(n,3);Vs(a,vs(n,1),e),qs(a,vs(n,2),n,!0),Ha(a,e);break}case 316:{const t=xs(e,vs(n,3));Ps(a,vs(n,1),40),Vs(a,vs(n,2),0),a.ptr_const(t),a.callImport("value_copy");break}case 317:{const e=vs(n,3);Ps(a,vs(n,1),40),Vs(a,vs(n,2),0),Ha(a,e);break}case 539:a.local("pLocals"),qs(a,vs(n,2),n,!0),a.appendU8(40),a.appendMemarg(qa(2),2),zs(a,vs(n,1),54);break;case 538:{a.block(),Ps(a,vs(n,3),40),a.local("index",34);let e="cknull_ptr";a.options.zeroPageOptimization&&Qa()?($a.nullChecksFused++,Ps(a,vs(n,2),40),e="src_ptr",a.local(e,34)):qs(a,vs(n,2),n,!0),a.appendU8(40),a.appendMemarg(qa(2),2),a.appendU8(72),a.local("index"),a.i32_const(0),a.appendU8(78),a.appendU8(113),a.appendU8(13),a.appendULeb(0),Ba(a,n,11),a.endBlock(),a.local("pLocals"),a.local("index"),a.i32_const(2),a.appendU8(108),a.local(e),a.appendU8(106),a.appendU8(47),a.appendMemarg(qa(3),1),zs(a,vs(n,1),54);break}case 349:case 350:{const e=Es(n,4);a.block(),Ps(a,vs(n,3),40),a.local("index",34);let t="cknull_ptr";349===S?qs(a,vs(n,2),n,!0):(Vs(a,vs(n,2),0),t="src_ptr",a.local(t,34)),a.appendU8(40),a.appendMemarg(qa(7),2),a.appendU8(73),a.local("index"),a.i32_const(0),a.appendU8(78),a.appendU8(113),a.appendU8(13),a.appendULeb(0),Ba(a,n,18),a.endBlock(),a.local("pLocals"),a.local(t),a.appendU8(40),a.appendMemarg(qa(8),2),a.local("index"),a.i32_const(e),a.appendU8(108),a.appendU8(106),zs(a,vs(n,1),54);break}case 652:a.block(),Ps(a,vs(n,3),40),a.local("count",34),a.i32_const(0),a.appendU8(78),a.appendU8(13),a.appendULeb(0),Ba(a,n,18),a.endBlock(),Vs(a,vs(n,1),16),a.local("dest_ptr",34),Ps(a,vs(n,2),40),a.appendU8(54),a.appendMemarg(0,0),a.local("dest_ptr"),a.local("count"),a.appendU8(54),a.appendMemarg(4,0);break;case 567:Vs(a,vs(n,1),8),Vs(a,vs(n,2),8),a.callImport("ld_del_ptr");break;case 81:Vs(a,vs(n,1),4),a.ptr_const(Us(n,2)),a.callImport("ldtsflda");break;case 651:a.block(),Vs(a,vs(n,1),4),Vs(a,vs(n,2),0),a.callImport("gettype"),a.appendU8(13),a.appendULeb(0),Ba(a,n,2),a.endBlock();break;case 648:{const t=xs(e,vs(n,4));a.ptr_const(t),Vs(a,vs(n,1),4),Vs(a,vs(n,2),0),Vs(a,vs(n,3),0),a.callImport("hasflag");break}case 657:{const e=qa(1);a.local("pLocals"),qs(a,vs(n,2),n,!0),a.i32_const(e),a.appendU8(106),zs(a,vs(n,1),54);break}case 649:a.local("pLocals"),Vs(a,vs(n,2),0),a.callImport("hashcode"),zs(a,vs(n,1),54);break;case 650:a.local("pLocals"),Vs(a,vs(n,2),0),a.callImport("try_hash"),zs(a,vs(n,1),54);break;case 653:a.local("pLocals"),Vs(a,vs(n,2),0),a.callImport("hascsize"),zs(a,vs(n,1),54);break;case 658:a.local("pLocals"),Ps(a,vs(n,2),40),a.local("math_lhs32",34),Ps(a,vs(n,3),40),a.appendU8(115),a.i32_const(2),a.appendU8(116),a.local("math_rhs32",33),a.local("math_lhs32"),a.i32_const(327685),a.appendU8(106),a.i32_const(10485920),a.appendU8(114),a.i32_const(1703962),a.appendU8(106),a.i32_const(-8388737),a.appendU8(114),a.local("math_rhs32"),a.appendU8(113),a.appendU8(69),zs(a,vs(n,1),54);break;case 540:case 541:a.block(),Vs(a,vs(n,1),4),Vs(a,vs(n,2),0),a.callImport(540===S?"array_rank":"a_elesize"),a.appendU8(13),a.appendULeb(0),Ba(a,n,2),a.endBlock();break;case 297:case 298:{const t=xs(e,vs(n,3)),r=St.mono_jiterp_is_special_interface(t),o=297===S,s=vs(n,1);if(!t){Bi(b,0,0,"null-klass"),n=0;continue}a.block(),a.options.zeroPageOptimization&&Qa()?(Ps(a,vs(n,2),40),a.local("dest_ptr",34),$a.nullChecksFused++):(a.block(),Ps(a,vs(n,2),40),a.local("dest_ptr",34),a.appendU8(13),a.appendULeb(0),a.local("pLocals"),a.i32_const(0),zs(a,s,54),a.appendU8(12),a.appendULeb(1),a.endBlock(),a.local("dest_ptr")),r&&a.local("dest_ptr"),a.appendU8(40),a.appendMemarg(qa(14),0),a.ptr_const(t),a.callImport(r?"imp_iface_s":"imp_iface"),o&&(a.local("dest_ptr"),a.appendU8(69),a.appendU8(114)),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),zs(a,s,54),a.appendU8(5),o?Ba(a,n,19):(a.local("pLocals"),a.i32_const(0),zs(a,s,54)),a.endBlock(),a.endBlock();break}case 299:case 300:case 295:case 296:{const t=xs(e,vs(n,3)),r=299===S||300===S,o=295===S||299===S,s=vs(n,1);if(!t){Bi(b,0,0,"null-klass"),n=0;continue}a.block(),a.options.zeroPageOptimization&&Qa()?(Ps(a,vs(n,2),40),a.local("dest_ptr",34),$a.nullChecksFused++):(a.block(),Ps(a,vs(n,2),40),a.local("dest_ptr",34),a.appendU8(13),a.appendULeb(0),a.local("pLocals"),a.i32_const(0),zs(a,s,54),a.appendU8(12),a.appendULeb(1),a.endBlock(),a.local("dest_ptr")),a.appendU8(40),a.appendMemarg(qa(14),0),a.appendU8(40),a.appendMemarg(qa(15),0),r&&a.local("src_ptr",34),a.i32_const(t),a.appendU8(70),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),zs(a,s,54),a.appendU8(5),r?(a.local("src_ptr"),a.ptr_const(t),a.callImport("hasparent"),o&&(a.local("dest_ptr"),a.appendU8(69),a.appendU8(114)),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),zs(a,s,54),a.appendU8(5),o?Ba(a,n,19):(a.local("pLocals"),a.i32_const(0),zs(a,s,54)),a.endBlock()):(Vs(a,vs(n,1),4),a.local("dest_ptr"),a.ptr_const(t),a.i32_const(S),a.callImport("castv2"),a.appendU8(69),a.block(64,4),Ba(a,n,19),a.endBlock()),a.endBlock(),a.endBlock();break}case 303:case 304:a.ptr_const(xs(e,vs(n,3))),Vs(a,vs(n,1),4),Vs(a,vs(n,2),0),a.i32_const(304===S?1:0),a.callImport("box");break;case 307:{const t=xs(e,vs(n,3)),r=qa(17),o=vs(n,1),s=ue(t+r);if(!t||!s){Bi(b,0,0,"null-klass"),n=0;continue}a.options.zeroPageOptimization&&Qa()?(Ps(a,vs(n,2),40),a.local("dest_ptr",34),$a.nullChecksFused++):(qs(a,vs(n,2),n,!0),a.local("dest_ptr",34)),a.appendU8(40),a.appendMemarg(qa(14),0),a.appendU8(40),a.appendMemarg(qa(15),0),a.local("src_ptr",34),a.appendU8(40),a.appendMemarg(r,0),a.i32_const(s),a.appendU8(70),a.local("src_ptr"),a.appendU8(45),a.appendMemarg(qa(16),0),a.appendU8(69),a.appendU8(113),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),a.i32_const(qa(18)),a.appendU8(106),zs(a,o,54),a.appendU8(5),Ba(a,n,21),a.endBlock();break}case 302:a.block(),Vs(a,vs(n,1),4),Ps(a,vs(n,2),40),a.callImport("newstr"),a.appendU8(13),a.appendULeb(0),Ba(a,n,17),a.endBlock();break;case 291:a.block(),Vs(a,vs(n,1),4),a.ptr_const(xs(e,vs(n,2))),a.callImport("newobj_i"),a.appendU8(13),a.appendULeb(0),Ba(a,n,17),a.endBlock();break;case 293:{const e=vs(n,3);Vs(a,vs(n,2),e),za(a,0,e),a.local("pLocals"),Vs(a,vs(n,2),e),zs(a,vs(n,1),54);break}case 290:case 292:case 543:case 542:l?(Oa(a,n,C,15),d=!0,N=0):n=0;break;case 545:case 546:case 547:case 548:case 544:l?(Oa(a,n,C,544==S?22:15),d=!0):n=0;break;case 145:case 142:Ba(a,n,16),d=!0;break;case 138:case 139:Ba(a,n,26),d=!0;break;case 144:if(a.callHandlerReturnAddresses.length>0&&a.callHandlerReturnAddresses.length<=3){const t=As(e,vs(n,1));a.local("pLocals"),a.appendU8(40),a.appendMemarg(t,0),a.local("index",33);for(let e=0;e=3&&S<=12||S>=516&&S<=517?l||a.options.countBailouts?(Ba(a,n,14),d=!0):n=0:S>=13&&S<=29?Js(a,n,S)?$=!0:n=0:S>=82&&S<=93?Ys(a,n,S)||(n=0):S>=351&&S<=434?Ks(a,n,S)||(n=0):cs[S]?Qs(a,n,S)||(n=0):ps[S]?ni(a,n,e,S)?l=!0:n=0:S>=31&&S<=57?Xs(a,e,n,S)||(n=0):S>=58&&S<=81?Zs(a,e,n,S)||(n=0):S>=95&&S<=135?oi(a,n,S)||(n=0):S>=568&&S<=621?ri(a,n,S)||(n=0):S>=323&&S<=348?si(a,e,n,S)||(n=0):S>=235&&S<=278?a.branchTargets.size>0?(Oa(a,n,C,8),d=!0):n=0:S>=640&&S<=647?li(a,n,S,x,I,T)?(p=!0,$=!0):n=0:0===N||(n=0)}if(n){if(!$){const e=n+2;for(let t=0;t0&&(e+=" -> ");for(let n=0;n0&&(l?h++:m++,f+=N),(n+=2*E)<=o&&(g=n)}else s&&ut(`instrumented trace ${t} aborted for opcode ${x} @${A.toString(16)}`),Bi(b,0,0,S)}for(;a.activeBlocks>0;)a.endBlock();return a.cfg.exitIp=g,p&&(f+=10240),f}(e,u,n,r,c,i,b,s),o=a>=mi.minimumTraceValue,i.cfg.generate()})),i.emitImportsAndFunctions(!1),!o)return m&&"end-of-body"===m.abortReason&&(m.abortReason="trace-too-small"),0;d=Na();const p=i.getArrayView();if($a.bytesGenerated+=p.length,p.length>=4080)return pt(`Jiterpreter generated too much code (${p.length} bytes) for trace ${u}. Please report this issue.`),0;const f=new WebAssembly.Module(p),g=i.getWasmImports(),y=new WebAssembly.Instance(f,g).exports[u];_=!1,l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const S=Fa(y);if(!S)throw new Error("add_function_pointer returned a 0 index");return i.options.enableStats&&$a.tracesCompiled&&$a.tracesCompiled%500==0&&Oi(!1,!0),S}catch(e){return f=!0,_=!1,dt(`${a||u} code generation failed: ${e} ${e.stack}`),Wa(),0}finally{const e=Na();if(d?(Ca.generation+=d-p,Ca.compilation+=e-d):Ca.generation+=e-p,f||!_&&mi.dumpTraces||h){if(f||mi.dumpTraces||h)for(let e=0;e0;)i.endBlock();i.inSection&&i.endSection()}catch(e){}const n=i.getArrayView();for(let r=0;r=4?Qi():Ji>0||"function"==typeof globalThis.setTimeout&&(Ji=globalThis.setTimeout((()=>{Ji=0,Qi()}),10))}},function(e,t,n,r,o,a,s,i,c){if(n>16)return 0;const l=new class{constructor(e,t,n,r,o,a,s,i,c){this.imethod=e,this.method=t,this.argumentCount=n,this.unbox=o,this.hasThisReference=a,this.hasReturnValue=s,this.name=i,this.paramTypes=new Array(n);for(let e=0;ee&&(l=l.substring(l.length-e,l.length)),l=`${this.imethod.toString(16)}_${l}`}else l=`${this.imethod.toString(16)}_${this.hasThisReference?"i":"s"}${this.hasReturnValue?"_r":""}_${this.argumentCount}`;this.traceName=l,this.hitCount=0}}(e,t,n,r,o,a,s,Qe(i),c);qi||(qi=Ma());const u=qi.get(c);return l.result=Fa(u),Xi[e]=l,l.result},function(e,t,n,r,o){const a=ue(n+0),s=lc[a];if(s)return void(s.result>0?St.mono_jiterp_register_jit_call_thunk(n,s.result):(s.queue.push(n),s.queue.length>12&&mc()));const i=new pc(e,t,n,r,0!==o);lc[a]=i,uc.push(i),uc.length>=6&&mc()},function(e,t,n,r,o){const a=dc(e);try{a(t,n,r,o)}catch(e){G(o,1)}},mc,function(e,n,r){l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const o=Ma().get(e),a=function(e,t,n){try{o(t)}catch(e){G(n,1)}};let s=!fc();if(!s)try{const e=new WebAssembly.Instance(_c,{i:{jit_call_cb:o},m:{h:t.asm.memory}}).exports.do_jit_call_indirect;if("function"!=typeof e)throw new Error("Did not find exported do_jit_call handler");const n=Fa(e);St.mono_jiterp_update_jit_call_dispatcher(n),s=!1}catch(e){dt("failed to compile do_jit_call handler",e),s=!0}if(s)try{const e=t.addFunction(a,"viii");St.mono_jiterp_update_jit_call_dispatcher(e)}catch(e){St.mono_jiterp_update_jit_call_dispatcher(0)}a(0,n,r)},function(){l.enablePerfMeasure&&Xt.push(globalThis.performance.now())},function(e){if(l.enablePerfMeasure){const t=Xt.pop(),n=a?{start:t}:{startTime:t};let r=Zt.get(e);r||(r=Qe(vt.mono_wasm_method_get_name(e)),Zt.set(e,r)),globalThis.performance.measure(r,n)}},function(e,t,r,o,a){const s=Qe(r),i=!!o,c=Qe(e),l=a,u=Qe(t),p=`[MONO] ${s}`;if(n.logging&&"function"==typeof n.logging.trace)n.logging.trace(c,u,p,i,l);else switch(u){case"critical":case"error":console.error(ht(p));break;case"warning":console.warn(p);break;case"message":default:console.log(p);break;case"info":console.info(p);break;case"debug":console.debug(p)}},function(e,t){jt=Qe(e).concat(".dll"),Rt=t,console.assert(!0,`Adding an entrypoint breakpoint ${jt} at method token ${Rt}`);debugger},function(){},Br,function(e,r,o,a,s,i){fr();const c=De(e),l=De(r),u=De(i);try{const e=fn(o);1!==e&&w(!1,`Signature version ${e} mismatch.`);const t=rt(c),r=Jt(),i=rt(l);lt(`Binding [JSImport] ${t} from ${i} module`);const p=function(e,t){e&&"string"==typeof e||w(!1,"function_name must be string");let r={};const o=e.split(".");t?(r=ur.get(t),r||w(!1,`ES6 module ${t} was not imported yet, please call JSHost.ImportAsync() first.`)):"INTERNAL"===o[0]?(r=n,o.shift()):"globalThis"===o[0]&&(r=globalThis,o.shift());for(let t=0;t{e&&e.dispose()},m=!0):R.Task}const h=sn(o,1),b=cn(h);R.Task;const g=Yr(h,b,1),y={fn:p,fqn:i+":"+t,args_count:d,arg_marshalers:_,res_converter:g,has_cleanup:m,arg_cleanup:f,isDisposed:!1};let S;S=0!=d||g?1!=d||m||g?1==d&&!m&&g?function(e){const t=e.fn,n=e.arg_marshalers[0],r=e.res_converter,o=e.fqn;return e=null,function(a){const s=Jt();try{L&&e.isDisposed;const o=n(a),s=t(o);r(a,s)}catch(e){ho(a,e)}finally{Yt(s,"mono.callCsFunction:",o)}}}(y):2==d&&!m&&g?function(e){const t=e.fn,n=e.arg_marshalers[0],r=e.arg_marshalers[1],o=e.res_converter,a=e.fqn;return e=null,function(s){const i=Jt();try{L&&e.isDisposed;const a=n(s),i=r(s),c=t(a,i);o(s,c)}catch(e){ho(s,e)}finally{Yt(i,"mono.callCsFunction:",a)}}}(y):function(e){const t=e.args_count,n=e.arg_marshalers,r=e.res_converter,o=e.arg_cleanup,a=e.has_cleanup,s=e.fn,i=e.fqn;return e=null,function(c){const l=Jt();try{L&&e.isDisposed;const i=new Array(t);for(let e=0;e2?t:r,e)}else{u=1;const t=s[e].toUpperCase();W(l,n+2*e,(t.length>1?s[e]:t).charCodeAt(0))}else for(let e=0;e2?t:r,e)}else{u=1;const t=s[e].toLowerCase();W(l,n+2*e,(t.length>1?s[e]:t).charCodeAt(0))}}catch(e){dr(a,e,i)}finally{i.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c);if(!e)throw new Error("Cannot change case, the culture name is null.");const i=tt(t,t+2*n),u=a?i.toLocaleUpperCase(e):i.toLocaleLowerCase(e);if(u.length<=i.length)return nt(r,r+2*o,u),void _r(s,l);const p=Ue();let d=1;if(a)for(let t=0;t2?n:o,t)}else{d=1;const n=i[t].toLocaleUpperCase(e);W(p,r+2*t,(n.length>1?i[t]:n).charCodeAt(0))}else for(let t=0;t2?n:o,t)}else{d=1;const n=i[t].toLocaleLowerCase(e);W(p,r+2*t,(n.length>1?i[t]:n).charCodeAt(0))}_r(s,l)}catch(e){dr(s,e,l)}finally{c.release(),l.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c),i=et(t,t+2*n),u=et(r,r+2*o),p=31&a,d=e||void 0;return _r(s,l),Uc(i,u,d,p)}catch(e){return dr(s,e,l),-2}finally{c.release(),l.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c),i=Ic(r,o);if(0==i.length)return 1;const u=Ic(t,n);if(u.lengthe.segment));let h=0,b=!1,g=-1,y=0,w=0,S=0;for(;!b;){const e=f.segment(c.slice(h,c.length))[Symbol.iterator]();let t=e.next();if(t.done)break;let n=p(t.value.segment,m[0],d,_);if(w=S,t=e.next(),t.done){g=n?w:g;break}if(y=t.value.index,S=w+y,n){for(let r=1;r1&&e<15||22==e||23==e}(n))return{eraNames:"",abbreviatedEraNames:""};const r=e.toLocaleDateString(t,{year:"numeric"}),o=e.toLocaleDateString(t,{day:"numeric"}),a=e.toLocaleDateString(t,{era:"short"}),s=e.toLocaleDateString(t,{era:"narrow"}),i=a.includes(r)?l(r):l(e.getFullYear().toString());return{eraNames:c(i.eraDateParts,i.ignoredPart),abbreviatedEraNames:c(i.abbrEraDateParts,i.ignoredPart)};function c(e,n){const r=new RegExp(`^((?!${n}|[0-9]).)*$`),o=e.filter((e=>r.test(e)));if(0==o.length)throw new Error(`Internal error, era for locale ${t} was in non-standard format.`);return o[0].trim()}function l(e){return a.startsWith(e)||a.endsWith(e)?{eraDateParts:a.split(o),abbrEraDateParts:s.split(o),ignoredPart:e}:{eraDateParts:a.split(e),abbrEraDateParts:s.split(e),ignoredPart:o}}}(c,e,t);a.EraNames=p.eraNames,a.AbbreviatedEraNames=p.abbreviatedEraNames;const d=Object.values(a).join("##");if(d.length>r)throw new Error(`Calendar info exceeds length of ${r}.`);return nt(n,n+2*d.length,d),_r(o,i),d.length}catch(e){return dr(o,e,i),-1}finally{s.release(),i.release()}},function(e,t,n,r,o){const a=De(e),s=De(o);try{const e=rt(a),o={AmDesignator:"",PmDesignator:"",LongTimePattern:"",ShortTimePattern:""},i=Ac(e),c=function(e){const t=new Date("August 19, 1975 12:15:30"),n=new Date("August 19, 1975 11:15:30"),r=vl(t,e);return{am:vl(n,e),pm:r}}(i);o.AmDesignator=c.am,o.PmDesignator=c.pm,o.LongTimePattern=function(e,t){const n=18..toLocaleString(e),r=6..toLocaleString(e),o=new Date("August 19, 1975 18:15:30"),a=new Intl.DateTimeFormat(e,{timeStyle:"medium"}),s=a.format(o),i=o.toLocaleTimeString(e,{minute:"numeric"}),c=o.toLocaleTimeString(e,{second:"numeric"});let l=s.replace(t.pm,"tt").replace(i,"mm").replace(c,"ss");const u=l.includes(n),p=`${(0).toLocaleString(e)}${r}`,d=new Date("August 19, 1975 6:15:30"),_=a.format(d);let f;if(u)f=_.includes(p)?"HH":"H",l=l.replace(n,f);else{const e=_.includes(p);f=e?"hh":"h",l=l.replace(e?p:r,f)}return l}(i,c),o.ShortTimePattern=function(e){const t=e.indexOf("ss");if(t>0){const n=`${e[t-1]}ss`,r=e.replace(n,"");e=r.length>t&&"t"!=r[r.length-1]?e.split(n)[0]:r}return e}(o.LongTimePattern);const l=Object.values(o).join("##");if(l.length>n)throw new Error(`Culture info exceeds length of ${n}.`);return nt(t,t+2*l.length,l),_r(r,s),l.length}catch(e){return dr(r,e,s),-1}finally{a.release(),s.release()}},function(e,t,n){const r=De(e),o=De(n);try{return function(e){const t=El(e);if(t)return 7==t.firstDay?0:t.firstDay;if(["en-AE","en-SD","fa-IR"].includes(e))return 6;const n=e.split("-")[0];return["zh","th","pt","mr","ml","ko","kn","ja","id","hi","he","gu","fil","bn","am","ar"].includes(n)||["ta-SG","ta-IN","sw-KE","ms-SG","fr-CA","es-MX","en-US","en-ZW","en-ZA","en-WS","en-VI","en-UM","en-TT","en-SG","en-PR","en-PK","en-PH","en-MT","en-MO","en-MH","en-KE","en-JM","en-IN","en-IL","en-HK","en-GU","en-DM","en-CA","en-BZ","en-BW","en-BS","en-AU","en-AS","en-AG"].includes(e)?0:1}(Ac(rt(r)))}catch(e){return dr(t,e,o),-1}finally{r.release(),o.release()}},function(e,t,n){const r=De(e),o=De(n);try{return function(e){const t=El(e);if(t)return 7==t.minimalDays?1:t.minimalDays<4?0:2;const n=e.split("-")[0];return["pt-PT","fr-CH","fr-FR","fr-BE","es-ES","en-SE","en-NL","en-JE","en-IM","en-IE","en-GI","en-GG","en-GB","en-FJ","en-FI","en-DK","en-DE","en-CH","en-BE","en-AT","el-GR"].includes(e)||["sv","sk","ru","pl","nl","no","lt","it","hu","fi","et","de","da","cs","ca","bg"].includes(n)?2:0}(Ac(rt(r)))}catch(e){return dr(t,e,o),-1}finally{r.release(),o.release()}}],Il=[...Ul,function(e,t,n,r,o){ol();const a=De(n),s=De(t),i=De(o);try{const t=rt(s);if(!t||"string"!=typeof t)return void dr(r,"ERR12: Invalid method name object @"+s.value,i);const n=function(e){return e!==T&&e!==I?Nr(e):null}(e);if(j(n))return void dr(r,"ERR13: Invalid JS object handle '"+e+"' while invoking '"+t+"'",i);const o=hl(a);try{const e=n[t];if(void 0===e)throw new Error("Method: '"+t+"' not found for: '"+Object.prototype.toString.call(n)+"'");Hc(e.apply(n,o),i,!0),_r(r)}catch(e){dr(r,e,i)}}finally{a.release(),s.release(),i.release()}},function(e,t,n,r){ol();const o=De(t),a=De(r);try{const t=rt(o);if(!t)return void dr(n,"Invalid property name object '"+o.value+"'",a);const r=Nr(e);if(j(r))return void dr(n,"ERR01: Invalid JS object handle '"+e+"' while geting '"+t+"'",a);Hc(r[t],a,!0),_r(n)}catch(e){dr(n,e,a)}finally{a.release(),o.release()}},function(e,t,n,r,o,a,s){ol();const i=De(n),c=De(t),l=De(s);try{const n=rt(c);if(!n)return void dr(a,"Invalid property name object '"+t+"'",l);const s=Nr(e);if(j(s))return void dr(a,"ERR02: Invalid JS object handle '"+e+"' while setting '"+n+"'",l);const u=fl(i);if(r)s[n]=u;else{if(!r&&!Object.prototype.hasOwnProperty.call(s,n))return;!0===o?Object.prototype.hasOwnProperty.call(s,n)&&(s[n]=u):s[n]=u}_r(a,l)}catch(e){dr(a,e,l)}finally{l.release(),c.release(),i.release()}},function(e,t,n,r){ol();const o=De(r);try{const r=Nr(e);if(j(r))return void dr(n,"ERR03: Invalid JS object handle '"+e+"' while getting ["+t+"]",o);Hc(r[t],o,!0),_r(n)}catch(e){dr(n,e,o)}finally{o.release()}},function(e,t,n,r,o){ol();const a=De(n),s=De(o);try{const n=Nr(e);if(j(n))return void dr(r,"ERR04: Invalid JS object handle '"+e+"' while setting ["+t+"]",s);const o=fl(a);n[t]=o,_r(r,s)}catch(e){dr(r,e,s)}finally{s.release(),a.release()}},function(e,r,o){ol();const a=De(e),s=De(o);try{const e=rt(a);let o;if(o=e?"Module"==e?t:"INTERNAL"==e?n:globalThis[e]:globalThis,null===o||void 0===typeof o)return void dr(r,"Global object '"+e+"' not found.",s);Hc(o,s,!0),_r(r)}catch(e){dr(r,e,s)}finally{s.release(),a.release()}},function(e,t,n,r){const o=De(t),a=De(e),s=De(r);try{const e=rt(a);if(!e)return void dr(n,"Invalid name @"+a.value,s);const t=globalThis[e];if(null==t)return void dr(n,"JavaScript host object '"+e+"' not found.",s);try{const e=hl(o),r=function(e,t){let n=[];return n[0]=e,t&&(n=n.concat(t)),new(e.bind.apply(e,n))};Hc(Dr(r(t,e)),s,!1),_r(n)}catch(e){return void dr(n,e,s)}}finally{s.release(),o.release(),a.release()}},function(e,t,n){const r=De(n);try{const n=Nr(e);if(j(n))return void dr(t,"ERR06: Invalid JS object handle '"+e+"'",r);Gc(n,r),_r(t)}catch(e){dr(t,String(e),r)}finally{r.release()}},function(e,t,n,r,o,a,s){const i=De(s);try{const s=function(e,t,n,r,o){let a=null;switch(o){case 5:a=new Int8Array(n-t);break;case 6:a=new Uint8Array(n-t);break;case 7:a=new Int16Array(n-t);break;case 8:a=new Uint16Array(n-t);break;case 9:a=new Int32Array(n-t);break;case 10:a=new Uint32Array(n-t);break;case 13:a=new Float32Array(n-t);break;case 14:a=new Float64Array(n-t);break;case 15:a=new Uint8ClampedArray(n-t);break;default:throw new Error("Unknown array type "+o)}return function(e,t,n,r,o){if(Pc(e)&&e.BYTES_PER_ELEMENT){if(o!==e.BYTES_PER_ELEMENT)throw new Error("Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '"+e.BYTES_PER_ELEMENT+"' sizeof managed element: '"+o+"'");let a=(r-n)*o;const s=e.length*e.BYTES_PER_ELEMENT;a>s&&(a=s);const i=n*o;return new Uint8Array(e.buffer,0,a).set(Ee().subarray(t+i,t+i+a)),a}throw new Error("Object '"+e+"' is not a typed array")}(a,e,t,n,r),a}(e,t,n,r,o);Hc(s,i,!0),_r(a)}catch(e){dr(a,String(e),i)}finally{i.release()}},function(e,t,n,r,o){try{ol();const e=globalThis.Blazor;if(!e)throw new Error("The blazor.webassembly.js library is not loaded.");return e._internal.invokeJSFromDotNet(t,n,r,o)}catch(t){const n=t.message+"\n"+t.stack,r=Be();return ot(n,r),r.copy_to_address(e),r.release(),0}}];function Tl(e){const t=e.env||e.a;if(!t)return void pt("WARNING: Neither imports.env or imports.a were present when instantiating the wasm module. This likely indicates an emscripten configuration issue.");const n=new Array(Il.length);for(const e in t){const r=t[e];if("function"==typeof r&&-1!==r.toString().indexOf("runtime_idx"))try{const{runtime_idx:t}=r();if(void 0!==n[t])throw new Error(`Duplicate runtime_idx ${t}`);n[t]=e}catch(e){}}for(const[e,r]of Il.entries()){const o=n[e];if(void 0!==o){const e=t[o];if("function"!=typeof e)throw new Error(`Expected ${o} to be a function`);t[o]=r,lt(`Replaced WASM import ${o} stub ${e.name} with ${r.name||"minified implementation"}`)}}}const xl="https://dotnet.generated.invalid/wasm-memory";async function Al(){if(void 0===globalThis.caches)return null;if(a&&!1===globalThis.window.isSecureContext)return null;const e=`dotnet-resources${document.baseURI.substring(document.location.origin.length)}`;try{return await globalThis.caches.open(e)||null}catch(e){return pt("Failed to open cache"),null}}async function jl(){if(l.memorySnapshotCacheKey)return l.memorySnapshotCacheKey;if(!l.subtle)return null;const t=Object.assign({},l.config);t.resourcesHash=t.resources.hash,delete t.assets,delete t.resources,t.preferredIcuAsset=u.preferredIcuAsset,delete t.forwardConsoleLogsToWS,delete t.diagnosticTracing,delete t.appendElementOnExit,delete t.assertAfterExit,delete t.interopCleanupOnExit,delete t.logExitCode,delete t.pthreadPoolSize,delete t.asyncFlushOnExit,delete t.remoteSources,delete t.ignorePdbLoadErrors,delete t.maxParallelDownloads,delete t.enableDownloadRetry,delete t.exitAfterSnapshot,delete t.extensions,t.GitHash=u.gitHash,t.ProductVersion=e;const n=JSON.stringify(t),r=await l.subtle.digest("SHA-256",(new TextEncoder).encode(n)),o=new Uint8Array(r),a=Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("");return l.memorySnapshotCacheKey=`${xl}-${a}`,l.memorySnapshotCacheKey}async function Rl(){await Io(),await async function(){try{if(!l.config.startupMemoryCache)return;const e=await jl();if(!e)return;const t=await Al();if(!t)return;const n=await t.match(e),r=null==n?void 0:n.headers.get("content-length"),o=r?parseInt(r):void 0;l.loadedMemorySnapshotSize=o,l.storeMemorySnapshotPending=!o}catch(e){pt("Failed find memory snapshot in the cache",e)}finally{l.loadedMemorySnapshotSize||u.memorySnapshotSkippedOrDone.promise_control.resolve()}}()}function Ll(e){const n=Jt();e.locateFile||(e.locateFile=e.__locateFile=e=>u.scriptDirectory+e),e.out||(e.out=console.log.bind(console)),e.err||(e.err=console.error.bind(console)),u.out=e.out,u.err=e.err,e.mainScriptUrlOrBlob=u.scriptUrl;const r=e.instantiateWasm,o=e.preInit?"function"==typeof e.preInit?[e.preInit]:e.preInit:[],h=e.preRun?"function"==typeof e.preRun?[e.preRun]:e.preRun:[],b=e.postRun?"function"==typeof e.postRun?[e.postRun]:e.postRun:[],g=e.onRuntimeInitialized?e.onRuntimeInitialized:()=>{};e.instantiateWasm=(e,n)=>function(e,n,r){const o=Jt();if(r){const t=r(e,((e,t)=>{Yt(o,"mono.instantiateWasm"),l.afterInstantiateWasm.promise_control.resolve(),n(e,t)}));return t}return async function(e,n){var r;try{await u.afterConfigLoaded,lt("instantiate_wasm_module"),await l.beforePreInit.promise,t.addRunDependency("instantiate_wasm_module");const o=async function(){d&&(await u.simd()||w(!1,"This browser/engine doesn't support WASM SIMD. Please use a modern version. See also https://aka.ms/dotnet-wasm-features")),_&&(await u.exceptions()||w(!1,"This browser/engine doesn't support WASM exception handling. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"))}();Tl(e);const i=await u.wasmDownloadPromise.promise;if(await o,await async function(e,t,n){e&&e.pendingDownloadInternal&&e.pendingDownloadInternal.response||w(!1,"Can't load dotnet.native.wasm");const r=await e.pendingDownloadInternal.response,o=r.headers&&r.headers.get?r.headers.get("Content-Type"):void 0;let i,c;if("function"==typeof WebAssembly.instantiateStreaming&&"application/wasm"===o){lt("instantiate_wasm_module streaming");const e=await WebAssembly.instantiateStreaming(r,t);i=e.instance,c=e.module}else{a&&"application/wasm"!==o&&pt('WebAssembly resource does not have the expected content type "application/wasm", so falling back to slower ArrayBuffer instantiation.');const e=await r.arrayBuffer();if(lt("instantiate_wasm_module buffered"),s)c=new WebAssembly.Module(e),i=new WebAssembly.Instance(c,t);else{const n=await WebAssembly.instantiate(e,t);i=n.instance,c=n.module}}n(i,c)}(i,e,n),i.pendingDownloadInternal=null,i.pendingDownload=null,i.buffer=null,i.moduleExports=null,lt("instantiate_wasm_module done"),l.loadedMemorySnapshotSize){try{const e=(null===(r=t.asm)||void 0===r?void 0:r.memory)||t.wasmMemory;e.grow(l.loadedMemorySnapshotSize-e.buffer.byteLength+65535>>>16),l.updateMemoryViews()}catch(e){pt("failed to resize memory for the snapshot",e),l.loadedMemorySnapshotSize=void 0}u.memorySnapshotSkippedOrDone.promise_control.resolve()}l.afterInstantiateWasm.promise_control.resolve()}catch(e){throw dt("instantiate_wasm_module() failed",e),u.mono_exit(1,e),e}t.removeRunDependency("instantiate_wasm_module")}(e,n),[]}(e,n,r),e.preInit=[()=>function(e){t.addRunDependency("mono_pre_init");const n=Jt();try{$l(!1),lt("preInit"),l.beforePreInit.promise_control.resolve(),e.forEach((e=>e()))}catch(e){throw dt("user preInint() failed",e),u.mono_exit(1,e),e}(async()=>{try{await async function(){lt("mono_wasm_pre_init_essential_async"),t.addRunDependency("mono_wasm_pre_init_essential_async"),t.removeRunDependency("mono_wasm_pre_init_essential_async")}(),Yt(n,"mono.preInit")}catch(e){throw u.mono_exit(1,e),e}l.afterPreInit.promise_control.resolve(),t.removeRunDependency("mono_pre_init")})()}(o)],e.preRun=[()=>async function(e){t.addRunDependency("mono_pre_run_async");try{await l.afterInstantiateWasm.promise,await l.afterPreInit.promise,lt("preRunAsync");const t=Jt();e.map((e=>e())),Yt(t,"mono.preRun")}catch(e){throw dt("user callback preRun() failed",e),u.mono_exit(1,e),e}l.afterPreRun.promise_control.resolve(),t.removeRunDependency("mono_pre_run_async")}(h)],e.onRuntimeInitialized=()=>async function(e){try{await l.afterPreRun.promise,lt("onRuntimeInitialized"),l.mono_wasm_exit=St.mono_wasm_exit,l.abort=e=>{throw u.is_exited()||St.mono_wasm_abort(),e};const n=Jt();if(l.beforeOnRuntimeInitialized.promise_control.resolve(),await async function(){await l.allAssetsInMemory.promise,l.config.assets&&(u.actual_downloaded_assets_count!=u.expected_downloaded_assets_count&&w(!1,`Expected ${u.expected_downloaded_assets_count} assets to be downloaded, but only finished ${u.actual_downloaded_assets_count}`),u.actual_instantiated_assets_count!=u.expected_instantiated_assets_count&&w(!1,`Expected ${u.expected_instantiated_assets_count} assets to be in memory, but only instantiated ${u.actual_instantiated_assets_count}`),u._loaded_files.forEach((e=>u.loadedFiles.push(e.url))),lt("all assets are loaded in wasm memory"))}(),L&&l.config.startupMemoryCache,await async function(){const e=Jt();if(l.loadedMemorySnapshotSize){const e=await async function(){try{const e=await jl();if(!e)return;const t=await Al();if(!t)return;const n=await t.match(e);if(!n)return;return n.arrayBuffer()}catch(e){return void pt("Failed load memory snapshot from the cache",e)}}(),t=Ee();return e.byteLength!==t.byteLength&&w(!1,"Loaded memory is not the expected size"),t.set(new Uint8Array(e),0),void lt("Loaded WASM linear memory from browser cache")}for(const e in l.config.environmentVariables){const t=l.config.environmentVariables[e];if("string"!=typeof t)throw new Error(`Expected environment variable '${e}' to be a string but it was ${typeof t}: '${t}'`);Nl(e,t)}l.config.startupMemoryCache&&St.mono_jiterp_update_jit_call_dispatcher(0),l.config.runtimeOptions&&function(e){if(!Array.isArray(e))throw new Error("Expected runtimeOptions to be an array of strings");const n=t._malloc(4*e.length);let r=0;for(let o=0;oaot; in your project file."),null==e&&(e={}),"writeAt"in e||(e.writeAt="System.Runtime.InteropServices.JavaScript.JavaScriptExports::StopProfile"),"sendTo"in e||(e.sendTo="Interop/Runtime::DumpAotProfileData");const t="aot:write-at-method="+e.writeAt+",send-to-method="+e.sendTo;vt.mono_wasm_profiler_init_aot(t)}(l.config.aotProfilerOptions),l.config.browserProfilerOptions&&(l.config.browserProfilerOptions,m||w(!1,"Browser profiler is not enabled, please use browser; in your project file."),vt.mono_wasm_profiler_init_browser("browser:")),Dl("unused",l.config.debugLevel),l.config.startupMemoryCache&&(St.mono_jiterp_update_jit_call_dispatcher(-1),await async function(e){try{const t=await jl();if(!t)return;const n=await Al();if(!n)return;const r=L?new Uint8Array(e).slice(0):e,o=new Response(r,{headers:{"content-type":"wasm-memory","content-length":e.byteLength.toString()}});await n.put(t,o),async function(e){try{const t=await Al();if(!t)return;const n=await t.keys();for(const r of n)r.url&&r.url!==e&&r.url.startsWith(xl)&&await t.delete(r)}catch(e){return}}(t)}catch(e){return void pt("Failed to store memory snapshot in the cache",e)}}(Ee().buffer),l.storeMemorySnapshotPending=!1),Yt(e,"mono.memorySnapshot")}(),l.config.exitAfterSnapshot){const e=l.ExitStatus?new l.ExitStatus(0):new Error("Snapshot taken, exiting because exitAfterSnapshot was set.");return e.silent=!0,void u.mono_exit(0,e)}L&&l.config.startupMemoryCache,function(){if(!l.mono_wasm_bindings_is_ready){lt("bindings_init"),l.mono_wasm_bindings_is_ready=!0;try{const e=Jt();Ve||("undefined"!=typeof TextDecoder&&(We=new TextDecoder("utf-16le"),Ge=new TextDecoder("utf-8",{fatal:!1}),qe=new TextDecoder("utf-8"),Je=new TextEncoder),Ve=t._malloc(12)),function(){const e="System.Runtime.InteropServices.JavaScript";if(l.runtime_interop_module=St.mono_wasm_assembly_load(e),!l.runtime_interop_module)throw"Can't find bindings module assembly: "+e;if(l.runtime_interop_namespace="System.Runtime.InteropServices.JavaScript",l.runtime_interop_exports_classname="JavaScriptExports",l.runtime_interop_exports_class=St.mono_wasm_assembly_find_class(l.runtime_interop_module,l.runtime_interop_namespace,l.runtime_interop_exports_classname),!l.runtime_interop_exports_class)throw"Can't find "+l.runtime_interop_namespace+"."+l.runtime_interop_exports_classname+" class";const n=To("CallEntrypoint");n||w(!1,"Can't find CallEntrypoint method");const r=To("ReleaseJSOwnedObjectByGCHandle");r||w(!1,"Can't find ReleaseJSOwnedObjectByGCHandle method");const o=To("CreateTaskCallback");o||w(!1,"Can't find CreateTaskCallback method");const a=To("CompleteTask");a||w(!1,"Can't find CompleteTask method");const s=To("CallDelegate");s||w(!1,"Can't find CallDelegate method");const i=To("GetManagedStackTrace");i||w(!1,"Can't find GetManagedStackTrace method");const c=To("LoadSatelliteAssembly");c||w(!1,"Can't find LoadSatelliteAssembly method");const p=To("LoadLazyAssembly");p||w(!1,"Can't find LoadLazyAssembly method"),l.javaScriptExports.call_entry_point=async(e,r)=>{u.assert_runtime_running();const o=t.stackSave();try{t.runtimeKeepalivePush();const o=on(4),a=an(o,1),s=an(o,2),i=an(o,3);so(s,e),r&&0==r.length&&(r=void 0),wo(i,r,R.String),kr(n,o);let c=Gn(a,0,Bn);return null==c&&(c=Promise.resolve(0)),c[$r]=!0,await c}finally{t.runtimeKeepalivePop(),t.stackRestore(o)}},l.javaScriptExports.load_satellite_assembly=e=>{const n=t.stackSave();try{const t=on(3),n=an(t,2);hn(n,R.Array),yo(n,e,R.Byte),kr(c,t)}finally{t.stackRestore(n)}},l.javaScriptExports.load_lazy_assembly=(e,n)=>{const r=t.stackSave();try{const t=on(4),r=an(t,2),o=an(t,3);hn(r,R.Array),hn(o,R.Array),yo(r,e,R.Byte),yo(o,n,R.Byte),kr(p,t)}finally{t.stackRestore(r)}},l.javaScriptExports.release_js_owned_object_by_gc_handle=e=>{e||w(!1,"Must be valid gc_handle"),u.assert_runtime_running();const n=t.stackSave();try{const t=on(3),n=an(t,2);hn(n,R.Object),Un(n,e),kr(r,t)}finally{t.stackRestore(n)}},l.javaScriptExports.create_task_callback=()=>{const e=t.stackSave();u.assert_runtime_running();try{const e=on(2);return kr(o,e),En(an(e,1))}finally{t.stackRestore(e)}},l.javaScriptExports.complete_task=(e,n,r,o)=>{u.assert_runtime_running();const s=t.stackSave();try{const t=on(5),s=an(t,2);hn(s,R.Object),Un(s,e);const i=an(t,3);if(n)ho(i,n);else{hn(i,R.None);const e=an(t,4);o||w(!1,"res_converter missing"),o(e,r)}kr(a,t)}finally{t.stackRestore(s)}},l.javaScriptExports.call_delegate=(e,n,r,o,a,i,c,l)=>{u.assert_runtime_running();const p=t.stackSave();try{const t=on(6),u=an(t,2);if(hn(u,R.Object),Un(u,e),i&&i(an(t,3),n),c&&c(an(t,4),r),l&&l(an(t,5),o),kr(s,t),a)return a(an(t,1))}finally{t.stackRestore(p)}},l.javaScriptExports.get_managed_stack_trace=e=>{u.assert_runtime_running();const n=t.stackSave();try{const t=on(3),n=an(t,2);return hn(n,R.Exception),Un(n,e),kr(i,t),qn(an(t,1))}finally{t.stackRestore(n)}}}(),p||i||function(){if(Object.prototype[Fc]=0,Array.prototype[Fc]=1,ArrayBuffer.prototype[Fc]=2,DataView.prototype[Fc]=3,Function.prototype[Fc]=4,Uint8Array.prototype[Fc]=11,Mc._unbox_buffer_size=65536,Mc._box_buffer=t._malloc(65536),Mc._unbox_buffer=t._malloc(Mc._unbox_buffer_size),Mc._class_int32=Sr("System","Int32"),Mc._class_uint32=Sr("System","UInt32"),Mc._class_double=Sr("System","Double"),Mc._class_boolean=Sr("System","Boolean"),Mc._null_root=Be(),function(){const e=Xc;e.set("m",{steps:[{}],size:0}),e.set("s",{steps:[{convert_root:ot.bind(t)}],size:0,needs_root:!0}),e.set("S",{steps:[{convert_root:at.bind(t)}],size:0,needs_root:!0}),e.set("o",{steps:[{convert_root:Hc.bind(t)}],size:0,needs_root:!0}),e.set("u",{steps:[{convert_root:zc.bind(t,!1)}],size:0,needs_root:!0}),e.set("R",{steps:[{convert_root:Hc.bind(t),byref:!0}],size:0,needs_root:!0}),e.set("j",{steps:[{convert:Jc.bind(t),indirect:"i32"}],size:8}),e.set("b",{steps:[{indirect:"bool"}],size:8}),e.set("i",{steps:[{indirect:"i32"}],size:8}),e.set("I",{steps:[{indirect:"u32"}],size:8}),e.set("l",{steps:[{indirect:"i52"}],size:8}),e.set("L",{steps:[{indirect:"u52"}],size:8}),e.set("f",{steps:[{indirect:"float"}],size:8}),e.set("d",{steps:[{indirect:"double"}],size:8})}(),Mc.runtime_legacy_exports_classname="LegacyExports",Mc.runtime_legacy_exports_class=St.mono_wasm_assembly_find_class(l.runtime_interop_module,l.runtime_interop_namespace,Mc.runtime_legacy_exports_classname),!Mc.runtime_legacy_exports_class)throw"Can't find "+l.runtime_interop_namespace+"."+Mc.runtime_legacy_exports_classname+" class";for(const e of al){const t=sl,[n,r,o,a]=e;if(n)t[r]=function(...e){const n=il(o,a);return t[r]=n,n(...e)};else{const e=il(o,a);t[r]=e}}}(),0==Kt.size&&(Kt.set(R.Array,Zn),Kt.set(R.Span,Qn),Kt.set(R.ArraySegment,er),Kt.set(R.Boolean,Cn),Kt.set(R.Byte,$n),Kt.set(R.Char,Nn),Kt.set(R.Int16,Dn),Kt.set(R.Int32,Bn),Kt.set(R.Int52,On),Kt.set(R.BigInt64,Mn),Kt.set(R.Single,Fn),Kt.set(R.IntPtr,zn),Kt.set(R.Double,Pn),Kt.set(R.String,qn),Kt.set(R.Exception,Jn),Kt.set(R.JSException,Jn),Kt.set(R.JSObject,Yn),Kt.set(R.Object,Xn),Kt.set(R.DateTime,Hn),Kt.set(R.DateTimeOffset,Hn),Kt.set(R.Task,Gn),Kt.set(R.Action,Wn),Kt.set(R.Function,Wn),Kt.set(R.None,Vn),Kt.set(R.Void,Vn),Kt.set(R.Discard,Vn)),0==Qt.size&&(Qt.set(R.Array,yo),Qt.set(R.Span,So),Qt.set(R.ArraySegment,ko),Qt.set(R.Boolean,Zr),Qt.set(R.Byte,Kr),Qt.set(R.Char,Qr),Qt.set(R.Int16,eo),Qt.set(R.Int32,to),Qt.set(R.Int52,no),Qt.set(R.BigInt64,ro),Qt.set(R.Double,oo),Qt.set(R.Single,ao),Qt.set(R.IntPtr,so),Qt.set(R.DateTime,io),Qt.set(R.DateTimeOffset,co),Qt.set(R.String,lo),Qt.set(R.Exception,ho),Qt.set(R.JSException,ho),Qt.set(R.JSObject,bo),Qt.set(R.Object,go),Qt.set(R.Task,mo),Qt.set(R.Action,_o),Qt.set(R.Function,_o),Qt.set(R.None,po),Qt.set(R.Discard,po),Qt.set(R.Void,po)),l._i52_error_scratch_buffer=t._malloc(4),Yt(e,"mono.bindingsInit")}catch(e){throw dt("Error in bindings_init",e),e}}}(),l.runtimeReady=!0,l.mono_wasm_runtime_is_ready||mono_wasm_runtime_ready(),0!==u.config.debugLevel&&u.config.cacheBootResources&&u.logDownloadStatsToConsole(),setTimeout((()=>{u.purgeUnusedCacheEntriesAsync()}),u.config.cachedResourcesPurgeDelay);try{e()}catch(e){throw dt("user callback onRuntimeInitialized() failed",e),e}await async function(){lt("mono_wasm_after_user_runtime_initialized");try{if(!t.disableDotnet6Compatibility&&t.exports){const e=globalThis;for(let n=0;nasync function(e){try{await l.afterOnRuntimeInitialized.promise,lt("postRunAsync");const n=Jt();t.FS_createPath("/","usr",!0,!0),t.FS_createPath("/","usr/share",!0,!0),e.map((e=>e())),Yt(n,"mono.postRun")}catch(e){throw dt("user callback posRun() failed",e),u.mono_exit(1,e),e}l.afterPostRun.promise_control.resolve()}(b)],e.ready.then((async()=>{await l.afterPostRun.promise,Yt(n,"mono.emscriptenStartup"),l.dotnetReady.promise_control.resolve(c)})).catch((e=>{l.dotnetReady.promise_control.reject(e)})),e.ready=l.dotnetReady.promise,e.onAbort||(e.onAbort=e=>{u.mono_exit(1,e)}),e.onExit||(e.onExit=e=>{u.mono_exit(e,null)})}async function Cl(e,n){await u.afterConfigLoaded.promise,Tl(e),n(new WebAssembly.Instance(t.wasmModule,e),void 0),t.wasmModule=null}function $l(e){var r,o,a;e||t.addRunDependency("mono_wasm_pre_init_essential"),lt("mono_wasm_pre_init_essential"),u.gitHash!==l.gitHash&&pt("The version of dotnet.runtime.js is different from the version of dotnet.js!"),u.gitHash!==l.moduleGitHash&&pt("The version of dotnet.native.js is different from the version of dotnet.js!"),function(){const e=[...yt,...p?[]:gt];for(const t of e){const e=wt,[n,r,o,a,s]=t,i="function"==typeof n;if(!0===n||i)e[r]=function(...t){!i||!n()||w(!1,`cwrap ${r} should not be called when binding was skipped`);const c=Ut(r,o,a,s);return e[r]=c,c(...t)};else{const t=Ut(r,o,a,s);e[r]=t}}}(),r=n,Object.assign(r,{mono_wasm_exit:St.mono_wasm_exit,mono_wasm_enable_on_demand_gc:St.mono_wasm_enable_on_demand_gc,mono_wasm_profiler_init_aot:vt.mono_wasm_profiler_init_aot,mono_wasm_profiler_init_browser:vt.mono_wasm_profiler_init_browser,mono_wasm_exec_regression:St.mono_wasm_exec_regression}),p||(a=Bc,Object.assign(a,{mono_wasm_add_assembly:kt.mono_wasm_add_assembly}),o=Oc,Object.assign(o,{mono_obj_array_new:kt.mono_wasm_obj_array_new,mono_obj_array_set:kt.mono_wasm_obj_array_set,mono_obj_array_new_ref:kt.mono_wasm_obj_array_new_ref,mono_obj_array_set_ref:kt.mono_wasm_obj_array_set_ref})),e||t.removeRunDependency("mono_wasm_pre_init_essential")}function Nl(e,t){St.mono_wasm_setenv(e,t)}function Dl(e,t){lt("mono_wasm_load_runtime");try{const n=Jt();null==t&&(t=0,l.config.debugLevel&&(t=0+t)),St.mono_wasm_load_runtime(e||"unused",t),Yt(n,"mono.loadRuntime")}catch(e){throw dt("mono_wasm_load_runtime () failed",e),u.mono_exit(1,e),e}}async function Bl(e){tr=null,null.addEventListener("dotnet:pthread:created",(e=>{lt("pthread created 0x"+e.pthread_self.pthreadId.toString(16))})),e.preInit=[()=>async function(){lt("worker initializing essential C exports and APIs");const e=Jt();try{lt("preInitWorker"),l.beforePreInit.promise_control.resolve(),$l(!0),await Io(),l.afterPreInit.promise_control.resolve(),Yt(e,"mono.preInitWorker")}catch(e){throw dt("user preInitWorker() failed",e),u.mono_exit(1,e),e}}()],e.instantiateWasm=Cl,await l.afterPreInit.promise}function Ol(n){const r=t,o=n,a=globalThis;p||function(e){Bc=e.mono,Oc=e.binding}(o),p||(Object.assign(o.mono,{mono_wasm_setenv:Nl,mono_wasm_load_bytes_into_heap:ye,mono_wasm_load_icu_data:ha,mono_wasm_runtime_ready:mono_wasm_runtime_ready,mono_wasm_new_root_buffer:Ne,mono_wasm_new_root:Be,mono_wasm_new_external_root:De,mono_wasm_release_roots:Oe,mono_run_main:Nc,mono_run_main_and_exit:$c,mono_wasm_add_assembly:null,mono_wasm_load_runtime:Dl,config:l.config,loaded_files:[],setB32:z,setI8:J,setI16:Y,setI32:Z,setI52:Q,setU52:ee,setI64Big:te,setU8:V,setU16:H,setU32:q,setF32:ne,setF64:re,getB32:oe,getI8:pe,getI16:de,getI32:_e,getI52:fe,getU52:me,getI64Big:he,getU8:ae,getU16:se,getU32:ie,getF32:be,getF64:ge}),Object.assign(o.binding,{bind_static_method:Sl,call_assembly_entry_point:kl,mono_obj_array_new:null,mono_obj_array_set:null,js_string_to_mono_string:ll,js_typed_array_to_array:qc,mono_array_to_js_array:ml,js_to_mono_obj:Vc,conv_string:gl,unbox_mono_obj:dl,mono_obj_array_new_ref:null,mono_obj_array_set_ref:null,js_string_to_mono_string_root:ot,js_typed_array_to_array_root:Gc,js_to_mono_obj_root:Hc,conv_string_root:rt,unbox_mono_obj_root:fl,mono_array_root_to_js_array:hl}),Object.assign(o.internal,{stringToMonoStringIntern:ul,mono_method_resolve:nl})),Object.assign(o.internal,{mono_wasm_exit:e=>{t.err("early exit "+e)},forceDisposeProxies:Vr,logging:void 0,mono_wasm_stringify_as_error_with_stack:ht,mono_wasm_get_loaded_files:ya,mono_wasm_send_dbg_command_with_parms:Dt,mono_wasm_send_dbg_command:Bt,mono_wasm_get_dbg_command_info:Ot,mono_wasm_get_details:Wt,mono_wasm_release_object:qt,mono_wasm_call_function_on:Ht,mono_wasm_debugger_resume:Mt,mono_wasm_detach_debugger:Ft,mono_wasm_raise_debug_event:zt,mono_wasm_change_debugger_log_level:Pt,mono_wasm_debugger_attached:Vt,mono_wasm_runtime_is_ready:l.mono_wasm_runtime_is_ready,mono_wasm_get_func_id_to_name_mappings:bt,get_property:ar,set_property:or,has_property:sr,get_typeof_property:ir,get_global_this:cr,get_dotnet_instance:()=>c,dynamic_import:pr,mono_wasm_cancel_promise:qr,ws_wasm_create:ca,ws_wasm_open:la,ws_wasm_send:ua,ws_wasm_receive:pa,ws_wasm_close:da,ws_wasm_abort:_a,http_wasm_supports_streaming_response:Ao,http_wasm_create_abort_controler:jo,http_wasm_abort_request:Ro,http_wasm_abort_response:Lo,http_wasm_fetch:$o,http_wasm_fetch_bytes:Co,http_wasm_get_response_header_names:Do,http_wasm_get_response_header_values:Bo,http_wasm_get_response_bytes:Mo,http_wasm_get_response_length:Oo,http_wasm_get_streamed_response_bytes:Fo,jiterpreter_dump_stats:Oi,jiterpreter_apply_options:rs,jiterpreter_get_options:os,mono_wasm_gc_lock:Fi,mono_wasm_gc_unlock:Pi,loadLazyAssembly:zi,loadSatelliteAssemblies:Vi}),Object.assign(l,{stringify_as_error_with_stack:ht,instantiate_symbols_asset:ga,instantiate_asset:ba,jiterpreter_dump_stats:Oi,forceDisposeProxies:Vr});const s={runMain:Nc,runMainAndExit:$c,setEnvironmentVariable:Nl,getAssemblyExports:Er,setModuleImports:rr,getConfig:()=>l.config,invokeLibraryInitializers:u.invokeLibraryInitializers,setHeapB32:z,setHeapU8:V,setHeapU16:H,setHeapU32:q,setHeapI8:J,setHeapI16:Y,setHeapI32:Z,setHeapI52:Q,setHeapU52:ee,setHeapI64Big:te,setHeapF32:ne,setHeapF64:re,getHeapB32:oe,getHeapU8:ae,getHeapU16:se,getHeapU32:ie,getHeapI8:pe,getHeapI16:de,getHeapI32:_e,getHeapI52:fe,getHeapU52:me,getHeapI64Big:he,getHeapF32:be,getHeapF64:ge,localHeapViewU8:Ee,localHeapViewU16:Ue,localHeapViewU32:Ie,localHeapViewI8:we,localHeapViewI16:Se,localHeapViewI32:ke,localHeapViewI64Big:ve,localHeapViewF32:Te,localHeapViewF64:xe};if(Object.assign(c,{INTERNAL:o.internal,Module:r,runtimeBuildInfo:{productVersion:e,gitHash:l.gitHash,buildConfiguration:"Release"},...s}),p||Object.assign(c,{MONO:o.mono,BINDING:o.binding}),void 0===r.disableDotnet6Compatibility&&(r.disableDotnet6Compatibility=!0),!r.disableDotnet6Compatibility){Object.assign(r,c),p||(r.mono_bind_static_method=(e,t)=>(pt("Module.mono_bind_static_method is obsolete, please use [JSExportAttribute] interop instead"),Sl(e,t)));const e=(e,t)=>{if(void 0!==a[e])return;let n;Object.defineProperty(globalThis,e,{get:()=>{if(j(n)){const r=(new Error).stack,o=r?r.substr(r.indexOf("\n",8)+1):"";pt(`global ${e} is obsolete, please use Module.${e} instead ${o}`),n=t()}return n}})};a.MONO=o.mono,a.BINDING=o.binding,a.INTERNAL=o.internal,a.Module=r,e("cwrap",(()=>r.cwrap)),e("addRunDependency",(()=>r.addRunDependency)),e("removeRunDependency",(()=>r.removeRunDependency))}let i;return a.getDotnetRuntime?i=a.getDotnetRuntime.__list:(a.getDotnetRuntime=e=>a.getDotnetRuntime.__list.getRuntime(e),a.getDotnetRuntime.__list=i=new Ml),i.registerRuntime(c),c}class Ml{constructor(){this.list={}}registerRuntime(e){return e.runtimeId=Object.keys(this.list).length,this.list[e.runtimeId]=hr(e),e.runtimeId}getRuntime(e){const t=this.list[e];return t?t.deref():void 0}}export{Ll as configureEmscriptenStartup,Rl as configureRuntimeStartup,Bl as configureWorkerStartup,Ol as initializeExports,Uo as initializeReplacements,b as passEmscriptenInternals,g as setRuntimeGlobals}; +//# sourceMappingURL=dotnet.runtime.js.map diff --git a/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.br b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.br new file mode 100644 index 0000000..b2498a3 Binary files /dev/null and b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.br differ diff --git a/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.gz b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.gz new file mode 100644 index 0000000..44c77b0 Binary files /dev/null and b/_framework/dotnet.runtime.8.0.0-rc.2.23479.6.lf65z6envp.js.gz differ diff --git a/_framework/netstandard.wasm b/_framework/netstandard.wasm new file mode 100644 index 0000000..1f6d0ef Binary files /dev/null and b/_framework/netstandard.wasm differ diff --git a/_framework/netstandard.wasm.br b/_framework/netstandard.wasm.br new file mode 100644 index 0000000..f11002c Binary files /dev/null and b/_framework/netstandard.wasm.br differ diff --git a/_framework/netstandard.wasm.gz b/_framework/netstandard.wasm.gz new file mode 100644 index 0000000..c200a39 Binary files /dev/null and b/_framework/netstandard.wasm.gz differ diff --git a/brotliloader.min.js b/brotliloader.min.js new file mode 100755 index 0000000..9a3a399 --- /dev/null +++ b/brotliloader.min.js @@ -0,0 +1 @@ +import{BrotliDecode}from"./decode.min.js";Blazor.start({loadBootResource:function(n,t,i){if(n!=="dotnetjs")return async function(){const t=await fetch(i+".br",{cache:"no-cache"});if(!t.ok)throw new Error(t.statusText);const r=await t.arrayBuffer(),u=new Int8Array(r),f=BrotliDecode(u),e=n==="dotnetwasm"?"application/wasm":"application/octet-stream";return new Response(f,{headers:{"content-type":e}})}()}}); \ No newline at end of file diff --git a/decode.min.js b/decode.min.js new file mode 100755 index 0000000..a760fc4 --- /dev/null +++ b/decode.min.js @@ -0,0 +1 @@ +export let BrotliDecode=(()=>{const f=Int32Array.from([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]),w=Int32Array.from([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),b=Int32Array.from([0,3,2,1,0,0,0,0,0,0,3,3,3,3,3,3]),j=Int32Array.from([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),l=Int32Array.from([131072,131076,131075,196610,131072,131076,131075,262145,131072,131076,131075,196610,131072,131076,131075,262149]),m=Int32Array.from([1,5,9,13,17,25,33,41,49,65,81,97,113,145,177,209,241,305,369,497,753,1265,2289,4337,8433,16625]),p=Int32Array.from([2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,7,8,9,10,11,12,13,24]),q=Int16Array.from([0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,12,14,24]),o=Int16Array.from([0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,24]),n=new Int16Array(2816);function g(f){let w=-1,b=16;for(;b>0;)f>>>b!=0&&(w+=b,f>>>=b),b>>=1;return w+f}function k(f,w,b){return 16+w+2*(b<>w),l=g(j)-1;return((l-1<<1|j>>l&1)-1<=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),0!==J(f,1)){const w=J(f,3);return 0===w?1:J(f,w)+(1<>>b.s;j+=255&l;const m=f[j]>>16,p=65535&f[j];if(m<=8)return b.s+=m,p;j+=p;return j+=(l&(1<>>8,b.s+=8+(f[j]>>16),65535&f[j]}function d(f,w,b){b.s>=16&&(b.g=b.k[b.v++]<<16|b.g>>>16,b.s-=16);const j=e(f,w,b),l=p[j];return b.s>=16&&(b.g=b.k[b.v++]<<16|b.g>>>16,b.s-=16),m[j]+(l<=16?J(b,l):_(b,l))}function H(f,w){const b=f[w];for(;w>0;w--)f[w]=f[w-1];f[0]=b}function a(f,w,b,j,l){const m=new Int32Array(w),p=new Int32Array(4),q=1+g(f-1),o=J(l,2)+1;for(let f=0;f=16&&(l.g=l.k[l.v++]<<16|l.g>>>16,l.s-=16);const b=J(l,q);if(b>=w)throw new Error("Can't readHuffmanCode");p[f]=b}!function(f,w){for(let b=0;b0;f++){const b=w[f];p.s>=16&&(p.g=p.k[p.v++]<<16|p.g>>>16,p.s-=16);const j=p.g>>>p.s&15;p.s+=l[j]>>16;const m=65535&l[j];o[b]=m,0!==m&&(n-=32>>m,g++)}if(0!==n&&1!==g)throw new Error("Corrupted Huffman code histogram");return function(f,w,b,j){let l=0,m=8,p=0,q=0,o=32768;const n=new Int32Array(33);for(U(n,n.length-1,5,f,18);l0;){j.v>2030&&E(j),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);const f=j.g>>>j.s&31;j.s+=n[f]>>16;const g=65535&n[f];if(g<16)p=0,b[l++]=g,0!==g&&(m=g,o-=32768>>g);else{const f=g-14;let n=0;16===g&&(n=m),q!==n&&(p=0,q=n);const k=p;p>0&&(p-=2,p<<=f),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16),p+=J(j,f)+3;const s=p-k;if(l+s>w)throw new Error("symbol + repeatDelta > numSymbols");for(let f=0;f2030&&E(l),l.s>=16&&(l.g=l.k[l.v++]<<16|l.g>>>16,l.s-=16);const m=J(l,2);return 1===m?a(f,w,b,j,l):u(w,m,b,j,l)}function h(w,b,j){j.v>2030&&E(j);const l=t(j)+1;if(1===l)return b.fill(0,0,w),l;j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let m=0;0!==J(j,1)&&(m=J(j,4)+1);const p=l+m,q=f[p+31>>5],o=new Int32Array(q+1),n=o.length-1;z(p,p,o,n,j);for(let f=0;f2030&&E(j),j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);const l=e(o,n,j);if(0===l)b[f]=0,f++;else if(l<=m){j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16);let m=(1<=w)throw new Error("Corrupted context map");b[f]=0,f++,m--}}else b[f]=l-m,f++}return j.s>=16&&(j.g=j.k[j.v++]<<16|j.g>>>16,j.s-=16),1===J(j,1)&&function(f,w){const b=new Int32Array(256);for(let f=0;f<256;f++)b[f]=f;for(let j=0;j=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);let m=e(f.l,2*w,f);const p=d(f.l,2*w+1,f);return 1===m?m=j[l+1]+1:0===m?m=j[l]:m-=2,m>=b&&(m-=b),j[l]=j[l+1],j[l+1]=m,p}function r(f){f.u=i(f,0,f.h);const w=f.H[5];f.i=w<<6,f.I=255&f.R[f.i];const b=f.K[w];f.T=b<<9,f.W=f.T+256}function I(f){f.B=i(f,1,f.Y),f.S=f.H[7]}function R(f){f.A=i(f,2,f.V),f.D=f.H[9]<<2}function K(f){if(0!==f.F)return f.P=10,void(f.j=12);f.U=new Int32Array(0),f.C=new Int32Array(0),f.J=new Int32Array(0),f.v>2030&&E(f),function(f){if(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.F=J(f,1),f._=0,f.M=0,f.X=0,0!==f.F&&0!==J(f,1))return;const w=J(f,2)+4;if(7===w){if(f.X=1,0!==J(f,1))throw new Error("Corrupted reserved bit");const w=J(f,2);if(0===w)return;for(let b=0;b=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const j=J(f,8);if(0===j&&b+1===w&&w>1)throw new Error("Exuberant nibble");f._|=j<<8*b}}else for(let b=0;b=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const j=J(f,4);if(0===j&&b+1===w&&w>4)throw new Error("Exuberant nibble");f._|=j<<4*b}f._++,0===f.F&&(f.M=J(f,1))}(f),0===f._&&0===f.X||(0!==f.M||0!==f.X?(G(f),f.j=0!==f.X?5:6):f.j=3,0===f.X&&(f.G+=f._,f.G>1<<30&&(f.G=1<<30),f.Of.G){const b=f.G;for(;w>>1>b;)w>>=1;0===f.F&&w<16384&&f.Z>=16384&&(w=16384)}if(w<=f.O)return;const b=new Int8Array(w+37);0!==f.L.length&&b.set(f.L.subarray(0,f.O),0),f.L=b,f.O=w}(f)))}function T(f,w,b){let j=f.l[2*w];if(b<=1)return f.l[2*w+1]=j,f.l[2*w+2]=j,1<<28;const l=b+2;j+=z(l,l,f.l,2*w,f),f.l[2*w+1]=j;return j+=z(26,26,f.l,2*w+1,f),f.l[2*w+2]=j,d(f.l,2*w+1,f)}function c(f){f.h=t(f)+1,f.u=T(f,0,f.h),f.Y=t(f)+1,f.B=T(f,1,f.Y),f.V=t(f)+1,f.A=T(f,2,f.V),f.v>2030&&E(f),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.N=J(f,2),f.$=J(f,4)<=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),f.K[w]=J(f,2);f.v>2030&&E(f)}f.R=new Int8Array(f.h<<6);const w=h(f.h<<6,f.R,f);f.ff=1;for(let w=0;w>6){f.ff=0;break}f.wf=new Int8Array(f.V<<2);const b=h(f.V<<2,f.wf,f);f.U=B(256,256,w,f),f.C=B(704,704,f.Y,f);let j=k(f.N,f.$,24),l=j;1===f.bf&&(j=k(f.N,f.$,62),l=s(2147483644,f.N,f.$)),f.J=B(j,l,b,f),function(f,w){const b=f.p,j=f.q,l=f.N,m=f.$,p=1<>>f.s,f.s+=8,j--;if(0===j)return;const l=Math.min(x(f),j>>1);if(l>0){const m=f.v<<1,p=l<<1;w.set(f.o.subarray(m,m+p),b),b+=p,j-=p,f.v+=l}if(0===j)return;if(x(f)>0){for(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);0!==j;)w[b++]=f.g>>>f.s,f.s+=8,j--;return void C(f,0)}for(;j>0;){const l=bf(f.input,w,b,j);if(-1===l)throw new Error("Unexpected end of input");b+=l,j-=l}}(f,w,f.jf,b),f._-=b,f.jf+=b,f.jf===f.O)return f.P=6,void(f.j=12);X(f),f.j=2}function W(f){const w=Math.min(f.lf-f.mf,f.pf-f.qf);return 0!==w&&(f.nf.set(f.L.subarray(f.qf,f.qf+w),f.gf+f.mf),f.mf+=w,f.qf+=w),f.mf>5],p=new Int32Array(j+j*m);let q=j;for(let f=0;f2147483644)throw new Error("Invalid backward reference");const b=f.sf-f.maxDistance-1-f.vf;if(b<0)!function(f,w,b){-1===f.tf&&function(f){f.ef=new Int8Array(256);let w=8;for(;f.vf-1>>>w!=0;)w++;w-=8,f.tf=w;let b=0,j=0;for(;b>>w]=j,b+=1<>>f.tf];for(;w>=f.df[j+1];)j++;if(f.vf>w+b)throw new Error("Invalid backward reference");f.m=f.m+1&3,f.H[f.m]=f.sf,f._-=b,f.Hf=j,f.af=w-f.df[j],f.uf=b,f.zf=0}(f,-b-1,f.hf),f.j=14;else{const j=L,l=f.hf;if(l>31)throw new Error("Invalid backward reference");const m=$[l];if(0===m)throw new Error("Invalid backward reference");let p=N[l];const q=b>>>m;p+=(b&(1<=o.if)throw new Error("Invalid backward reference");const n=function(f,w,b,j,l,m,p){let q=w;const o=m.rf,n=m.If,g=m.Rf,k=3*p,s=o[k],v=o[k+1],t=o[k+2];let e=g[s];const d=g[s+1];let H=g[t];const a=g[t+1];let u=v-11,z=v;(u<1||u>9)&&(u=0);(z<1||z>9)&&(z=0);for(;e!==d;)f[q++]=n[e++];u>l&&(u=l);j+=u,l-=u;let h=l-=z;for(;h>0;)f[q++]=b[j++],h--;if(10===v||11===v){let w=q-l;for(10===v&&(l=1);l>0;){const b=255&f[w];b<192?(b>=97&&b<=122&&(f[w]^=32),w+=1,l-=1):b<224?(f[w+1]^=32,w+=2,l-=2):(f[w+2]^=5,w+=3,l-=3)}}else if(21===v||22===v){let w=q-l;const b=m.Kf[p];let j=16777216-(32768&b)+(32767&b);for(;l>0;){let b=1;const m=255&f[w];if(m<128)j+=m,f[w]=127&j;else if(m<192);else if(m<224)if(l>=2){const l=f[w+1];j+=63&l|(31&m)<<6,f[w]=192|j>>6&31,f[w+1]=192&l|63&j,b=2}else b=l;else if(m<240)if(l>=3){const l=f[w+1],p=f[w+2];j+=63&p|(63&l)<<6|(15&m)<<12,f[w]=224|j>>12&15,f[w+1]=192&l|j>>6&63,f[w+2]=192&p|63&j,b=3}else b=l;else if(m<248)if(l>=4){const l=f[w+1],p=f[w+2],q=f[w+3];j+=63&q|(63&p)<<6|(63&l)<<12|(7&m)<<18,f[w]=240|j>>18&7,f[w+1]=192&l|j>>12&63,f[w+2]=192&p|j>>6&63,f[w+3]=192&q|63&j,b=4}else b=l;w+=b,l-=b,21===v&&(l=0)}}for(;H!==a;)f[q++]=n[H++];return q-w}(f.L,f.jf,j,p,l,o,q);if(f.jf+=n,f._-=n,f.jf>=w)return f.P=4,void(f.j=12);f.j=4}}function A(f,w){let b=f.jf;const j=b;for(;f.uf!==f.zf;){const j=w-b,l=f.df[f.Hf+1]-f.df[f.Hf]-f.af;let m=f.uf-f.zf;if(m>l&&(m=l),m>j&&(m=j),f.L.set(f.Tf[f.Hf].slice(f.af,f.af+m),b),b+=m,f.af+=m,f.zf+=m,m===l&&(f.Hf++,f.af=0),b>=w)break}return b-j}function V(f){if(0===f.j)throw new Error("Can't decompress until initialized");if(11===f.j)throw new Error("Can't decompress after close");if(1===f.j){const w=function(f){const w=f.bf;if(f.bf=0,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),0===J(f,1))return 16;let b=J(f,3);return 0!==b?17+b:(b=J(f,3),0!==b?1===b?0===w?-1:(f.bf=1,1===J(f,1)?-1:(b=J(f,6),b<10||b>30?-1:b)):8+b:17)}(f);if(-1===w)throw new Error("Invalid 'windowBits' code");f.Z=1<2030&&E(f),0===f.B&&I(f),f.B--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const p=e(f.C,f.S,f)<<2,q=n[p],o=n[p+1],g=n[p+2];f.yf=n[p+3],f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const k=255&q;f.Wf=o+(k<=16?J(f,k):_(f,k)),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const s=q>>8;f.hf=g+(s<=16?J(f,s):_(f,s)),f.Bf=0,f.j=7;case 7:if(0!==f.ff){for(;f.Bf2030&&E(f),0===f.u&&r(f),f.u--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),m[f.jf]=e(f.U,f.I,f),f.jf++,f.Bf++,f.jf>=w){f.P=7,f.j=12;break}}else{let b=255&m[f.jf-1&l],j=255&m[f.jf-2&l];for(;f.Bf2030&&E(f),0===f.u&&r(f);const l=O[f.T+b]|O[f.W+j],p=255&f.R[f.i+l];if(f.u--,j=b,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),b=e(f.U,p,f),m[f.jf]=b,f.jf++,f.Bf++,f.jf>=w){f.P=7,f.j=12;break}}}if(7!==f.j)continue;if(f._-=f.Wf,f._<=0){f.j=4;continue}let v=f.yf;if(v<0)f.sf=f.H[f.m];else{f.v>2030&&E(f),0===f.A&&R(f),f.A--,f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16);const w=255&f.wf[f.D+v];if(v=e(f.J,w,f),v<16){const w=f.m+b[v]&3;if(f.sf=f.H[w]+j[v],f.sf<0)throw new Error("Negative distance")}else{const w=f.p[v];let b;f.s+w<=32?b=J(f,w):(f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),b=w<=16?J(f,w):_(f,w)),f.sf=f.q[v]+(b<f.maxDistance){f.j=9;continue}if(v>0&&(f.m=f.m+1&3,f.H[f.m]=f.sf),f.hf>f._)throw new Error("Invalid backward reference");f.Bf=0,f.j=8;case 8:let t=f.jf-f.sf&l,d=f.jf;const H=f.hf-f.Bf,a=t+H,u=d+H;if(ad&&u>t)for(let f=0;f=w){f.P=8,f.j=12;break}8===f.j&&(f.j=4);continue;case 9:S(f,w);continue;case 14:if(f.jf+=A(f,w),f.jf>=w)return f.P=14,void(f.j=12);f.j=4;continue;case 5:for(;f._>0;)f.v>2030&&E(f),f.s>=16&&(f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16),J(f,8),f._--;f.j=2;continue;case 6:y(f);continue;case 12:f.pf=Math.min(f.jf,f.O),f.j=13;case 13:if(0===W(f))return;f.jf>=f.cf&&(f.maxDistance=f.cf),f.jf>=f.O&&(f.jf>f.O&&m.copyWithin(0,f.O,f.jf),f.jf&=l,f.qf=0),f.j=f.P;continue;default:throw new Error("Unexpected state "+wf(f.j))}if(10===f.j){if(f._<0)throw new Error("Invalid metablock length");G(f),C(f,1)}}!function(f){const w=new Int16Array(24),b=new Int16Array(24);b[0]=2;for(let f=0;f<23;++f)w[f+1]=w[f]+(1<>>6,m=-4;l>=2&&(l-=2,m=0);const p=(170064>>>2*l&3)<<3|j>>>3&7,n=(156228>>>2*l&3)<<3|7&j,g=b[n],k=m+(g>4?3:g-2),s=4*j;f[s]=q[p]|o[n]<<8,f[s+1]=w[p],f[s+2]=b[n],f[s+3]=k}}(n);const D=new function(f,w,b){this.if=0,this.rf=new Int32Array(0),this.If=new Int8Array(0),this.Rf=new Int32Array(0),this.Kf=new Int16Array(0),this.if=f,this.rf=new Int32Array(3*f),this.Kf=new Int16Array(f),this.If=new Int8Array(w),this.Rf=new Int32Array(b+1)}(121,167,50);function F(f,w){let b=1<>=1;return(f&b-1)+b}function Q(f,w,b,j,l){do{f[w+(j-=b)]=l}while(j>0)}function P(f,w,b){let j=1<0;o[w]--)Q(f,m+p,j,s,w<<16|q[g++]),p=F(p,w);const t=v-1;let e=-1,d=m;for(let w=b+1,j=2;w<=15;w++,j<<=1)for(;o[w]>0;o[w]--)(p&t)!==e&&(d+=s,k=P(o,w,b),s=1<>b),j,s,w-b<<16|q[g++]),p=F(p,w);return v}function E(f){if(0!==f.t){if(x(f)>=-2)return;throw new Error("No more input")}const w=f.v<<1;let b=4096-w;for(f.o.copyWithin(0,w,4096),f.v=0;b<4096;){const w=4096-b,j=bf(f.input,f.o,b,w);if(j<=0){f.t=1,f.Yf=b,b+=1;break}b+=j}!function(f,w){const b=f.o,j=w>>1,l=f.k;for(let f=0;f>3)-4;if(b>f.Yf)throw new Error("Read after end");if(0!==w&&b!==f.Yf)throw new Error("Unused bytes after end")}function J(f,w){const b=f.g>>>f.s&(1<>>16,f.s-=16,b|J(f,w-16)<<16}function M(f){f.v>2030&&E(f),C(f,0),f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16,f.g=f.k[f.v++]<<16|f.g>>>16,f.s-=16}function X(f){32===f.s&&M(f)}function G(f){const w=32-f.s&7;if(0!==w){if(0!==J(f,w))throw new Error("Corrupted padding bits")}}function x(f){let w=2048;return 0!==f.t&&(w=f.Yf+1>>1),w-f.v}!function(f,w,b,j,l){const m=j.length;let p=1,q=0;for(let b=0;b#\n#]# for # a # that #. # with #\'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #="# of the #. This #,# not #er #al #=\'#ful #ive #less #est #ize #ous #'," !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K");const O=new Int32Array(2048);function Z(){this.L=new Int8Array(0),this.K=new Int8Array(0),this.R=new Int8Array(0),this.wf=new Int8Array(0),this.p=new Int8Array(0),this.nf=new Int8Array(0),this.o=new Int8Array(0),this.k=new Int16Array(0),this.Sf=new Int32Array(0),this.H=new Int32Array(0),this.l=new Int32Array(0),this.U=new Int32Array(0),this.C=new Int32Array(0),this.J=new Int32Array(0),this.q=new Int32Array(0),this.Af=0,this.j=0,this.P=0,this.g=0,this.s=0,this.v=0,this.Yf=0,this.t=0,this._=0,this.F=0,this.M=0,this.X=0,this.u=0,this.h=0,this.B=0,this.Y=0,this.A=0,this.V=0,this.jf=0,this.maxDistance=0,this.m=0,this.ff=0,this.I=0,this.S=0,this.Bf=0,this.Wf=0,this.i=0,this.D=0,this.T=0,this.W=0,this.yf=0,this.$=0,this.N=0,this.sf=0,this.hf=0,this.cf=0,this.Z=0,this.O=0,this.G=0,this.gf=0,this.lf=0,this.mf=0,this.qf=0,this.pf=0,this.kf=0,this.bf=0,this.Vf=0,this.vf=0,this.Hf=0,this.af=0,this.uf=0,this.zf=0,this.Tf=new Array(0),this.df=new Int32Array(0),this.tf=0,this.ef=new Int8Array(0),this.input=null,this.L=new Int8Array(0),this.H=new Int32Array(10),this.H[0]=16,this.H[1]=15,this.H[2]=11,this.H[3]=4}!function(f,w,b){for(let w=0;w<256;++w)f[w]=63&w,f[512+w]=w>>2,f[1792+w]=2+(w>>6);for(let b=0;b<128;++b)f[1024+b]=4*(w.charCodeAt(b)-32);for(let w=0;w<64;++w)f[1152+w]=1&w,f[1216+w]=2+(1&w);let j=1280;for(let w=0;w<19;++w){const l=3&w,m=b.charCodeAt(w)-32;for(let w=0;w!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+"sj`hfujo\'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sksolpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\x0elupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8\x0eojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\x0elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\x7f"+njmfyk9\x04abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\vwbmhzbqgaltoavpk965YIbub03s{\t\x7f~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\x05rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd\'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\x0e\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\x7f.\t"331*mgltX2^8X^8\tOld#pbow\x0e\t\n\nabmdwqjnabwk*x\x0e\t33s{\t~*8hl9\0effpbg=\x0ep9,,#X^8wloosovd+*x\tx\x0e\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\x0e\t~\x0e1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\x0e\tabmgprvfvf>#x~8;3s{8`hjmdx\x0e\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\x7f\x7f#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\x0fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\x7fpvjwfpoj`fkbqqz213!#ptffwwq=\x0e\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\x0fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\x0e\t?"pwffo#zlv#k1=\x0e\telqn#ifpvp233&#nfmv-\x0e\t\n\x0e\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\x7f`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\x0e\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\x7f\x7f#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\x7ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\x7f\x7f#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\x0evpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\vBl\bQ\x7f\vUm\x05Gx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\vBM\v|j\x04BV\tqw\tcC\bWI\npa\tfM\n{Z\x05{X\bTF\bVV\bVK\t\x7fm\x04kF\t[]\bPm\bTv\nsI\vpg\t[I\bQp\x04mx\v_W\n^M\npe\vQ}\vGu\nel\npe\x04Ch\x04BV\bTA\tSo\nzk\vGL\vxD\nd[\x05Jz\x05MY\bQp\x04li\nfl\npC\x05{B\x05Nt\vwT\ti_\bTg\x04QQ\n|p\vXN\bQS\vxD\x04QC\bWZ\tpD\vVS\bTW\x05Nt\x04Yh\nzu\x04Kj\x05N}\twr\tHa\n_D\tj`\vQ}\vWp\nxZ\x04{c\tji\tBU\nbD\x04a|\tTn\tpV\nZd\nmC\vEV\x05{X\tc}\tTo\bWl\bUd\tIQ\tcg\vxs\nXW\twR\vek\tc}\t]y\tJn\nrp\neg\npV\nz\\\x05{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHv\x04Su\bTF\v_W\vWs\vsI\x05m\x7f\nTT\ndc\tUS\t}f\tiZ\bWz\tc}\x04MD\tBe\tiD\v@@\bTl\bPv\t}t\x04Sw\x04M`\vnU\tkW\ved\nqo\vxY\tA|\bTz\vy`\x04BR\x04BM\tia\x04XU\nyu\x04n^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\t\x7fm\tav\tBN\vb\\\tpD\bTf\nY[\tJn\bQy\t[^\vWc\vyu\x04Dl\x04CJ\vWj\vHR\t`V\vuW\tQy\np@\vGu\x05pl\x04Jm\bW[\nLP\nxC\n`m\twQ\x05ui\x05\x7fR\nbI\twQ\tBZ\tWV\x04BR\npg\tcg\x05ti\x04CW\n_y\tRg\bQa\vQB\vWc\nYb\x05le\ngE\x04Su\nL[\tQ\x7f\tea\tdj\v]W\nb~\x04M`\twL\bTV\bVH\nt\x7f\npl\t|b\x05s_\bU|\bTa\x04oQ\x05lv\x04Sk\x04M`\bTv\vK}\nfl\tcC\x04oQ\x04BR\tHk\t|d\bQp\tHK\tBZ\vHR\bPv\vLx\vEZ\bT\x7f\bTv\tiD\x05oD\x05MU\vwB\x04Su\x05k`\x04St\ntC\tPl\tKg\noi\tjY\vxY\x04h}\nzk\bWZ\t\x7fm\ve`\tTB\tfE\nzk\t`z\x04Yh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYc\x04Kd\nfy\x04Yh\t[I\vDg\x04Jm\n]n\nlb\bUd\n{Z\tlu\tfs\x04oQ\bTW\x04Jm\vwB\tea\x04Yh\x04BC\tsb\tTn\nzU\n_y\vxY\tQ]\ngw\x04mt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\vRb\twQ\n]Q\x04QJ\bWg\vWa\bQj\ntC\bVH\nYm\vxs\bVK\nel\bWI\vxY\x04Cq\ntR\vHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\vxs\v_W\td{\vQ}\tcg\tTz\tA|\tCj\vLm\x05N}\x05m\x7f\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\vQ}\bTf\x05ka\x04Jm\v@@\bV`\tzp\n@N\x04Sw\tiI\tcg\noi\x04Su\bVw\x04lo\x04Cy\tc}\vb\\\tsU\x04BA\bWI\bTf\nxS\tVp\nd|\bTV\vbC\tNo\x05Ju\nTC\t|`\n{Z\tD]\bU|\tc}\x05lm\bTl\tBv\tPl\tc}\bQp\t\x7fm\nLk\tkj\n@N\x04Sb\x04KO\tj_\tp\\\nzU\bTl\bTg\bWI\tcf\x04XO\bWW\ndz\x04li\tBN\nd[\bWO\x04MD\vKC\tdj\tI_\bVV\ny\\\vLm\x05xl\txB\tkV\vb\\\vJW\vVS\tVx\vxD\td{\x04MD\bTa\t|`\vPz\x04R}\vWs\x04BM\nsI\x04CN\bTa\x04Jm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\vWh\vWk\nxS\vAz\vwX\nbI\x04oQ\tfw\nqI\nV|\nun\x05z\x7f\vpg\td\\\voA\x05{D\ti_\x05xB\bT\x7f\t`V\x05qr\tTT\x04g]\x04CA\vuR\tVJ\tT`\npw\vRb\tI_\nCx\x04Ro\vsI\x04Cj\x04Kh\tBv\tWV\x04BB\x05oD\x05{D\nhc\x04Km\v^R\tQE\n{I\np@\nc|\x05Gt\tc}\x04Dl\nzU\x05qN\tsV\x05k}\tHh\v|j\nqo\x05u|\tQ]\vek\x05\x7fZ\x04M`\x04St\npe\tdj\bVG\veE\t\x7fm\vWc\x04|I\n[W\tfL\bT\x7f\tBZ\x04Su\vKa\x04Cq\x05Nt\x04Y[\nqI\bTv\tfM\ti@\t}f\x04B\\\tQy\vBl\bWg\x04XD\x05kc\vx[\bVV\tQ]\t\x7fa\tPy\vxD\nfI\t}f\x05oD\tdj\tSG\x05ls\t~D\x04CN\n{Z\t\\v\n_D\nhc\vx_\x04C[\tAJ\nLM\tVx\x04CI\tbj\tc^\tcF\ntC\x04Sx\twr\x04XA\bU\\\t|a\vK\\\bTV\bVj\nd|\tfs\x04CX\ntb\bRw\tVx\tAE\tA|\bT\x7f\x05Nt\vDg\tVc\bTl\x04d@\npo\t\x7fM\tcF\npe\tiZ\tBo\bSq\nfH\x04l`\bTx\bWf\tHE\vF{\tcO\tfD\nlm\vfZ\nlm\veU\tdG\x04BH\bTV\tSi\x05MW\nwX\nz\\\t\\c\x04CX\nd}\tl}\bQp\bTV\tF~\bQ\x7f\t`i\ng@\x05nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\vxY\x04Kj\tAJ\x05uN\ti[\npe\x04Sk\vDg\vx]\bVb\bVV\nea\tkV\nqI\bTa\x04Sk\nAO\tpD\ntb\nts\nyi\bVg\ti_\v_W\nLk\x05Nt\tyj\tfM\x04R\x7f\tiI\bTl\vwX\tsV\vMl\nyu\tAJ\bVj\x04KO\tWV\vA}\vW\x7f\nrp\tiD\v|o\x05lv\vsI\x04BM\td~\tCU\bVb\x04eV\npC\vwT\tj`\tc}\vxs\vps\vvh\tWV\vGg\vAe\vVK\v]W\trg\vWc\x05F`\tBr\vb\\\tdZ\bQp\nqI\x04kF\nLk\vAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_\x05{A\x05wj\twN\v@@\bTe\ti_\n_D\twL\nAH\viK\vek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\nps\x05Gt\vVK\npl\x04S}\vWP\t|d\x04MD\vHV\bT\x7f\x04R}\x04M`\bTV\bVH\x05lv\x04Ch\bW[\x04Ke\tR{\v^R\tab\tBZ\tVA\tB`\nd|\nhs\x04Ke\tBe\x04Oi\tR{\td\\\x05nB\bWZ\tdZ\tVJ\x05Os\t\x7fm\x04uQ\vhZ\x04Q@\x04QQ\nfI\bW[\x04B\\\x04li\nzU\nMd\x04M`\nxS\bVV\n\\}\vxD\t\x7fm\bTp\x04IS\nc|\tkV\x05i~\tV{\vhZ\t|b\bWt\n@R\voA\vnU\bWI\tea\tB`\tiD\tc}\tTz\x04BR\vQB\x05Nj\tCP\t[I\bTv\t`W\x05uN\vpg\vpg\vWc\tiT\tbs\twL\tU_\tc\\\t|h\vKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|b\x04m`\bTv\nyd\nrp\bWf\tUX\x04BV\nzk\nd}\twQ\t}f\x04Ce\ved\bTW\bSB\nxU\tcn\bTb\ne\x7f\ta\\\tSG\bU|\npV\nN\\\x04Kn\vnU\tAt\tpD\v^R\vIr\x04b[\tR{\tdE\vxD\vWK\vWA\bQL\bW@\x04Su\bUd\nDM\tPc\x04CA\x04Dl\x04oQ\tHs\x05wi\x04ub\n\x7fa\bQp\x05Ob\nLP\bTl\x04Y[\vK}\tAJ\bQ\x7f\x04n^\vsA\bSM\nqM\bWZ\n^W\vz{\x04S|\tfD\bVK\bTv\bPv\x04BB\tCP\x04dF\tid\vxs\x04mx\vws\tcC\ntC\tyc\x05M`\vW\x7f\nrh\bQp\vxD\x04\\o\nsI\x04_k\nzu\x04kF\tfD\x04Xs\x04XO\tjp\bTv\x04BS\x05{B\tBr\nzQ\nbI\tc{\x04BD\x04BV\x05nO\bTF\tca\x05Jd\tfL\tPV\tI_\nlK\x04`o\twX\npa\tgu\bP}\x05{^\bWf\n{I\tBN\npa\x04Kl\vpg\tcn\tfL\vvh\x04Cq\bTl\vnU\bSq\x04Cm\twR\bUJ\npe\nyd\nYg\x04Cy\vKW\tfD\nea\x04oQ\tj_\tBv\x04nM\vID\bTa\nzA\x05pl\n]n\bTa\tR{\tfr\n_y\bUg\x05{X\x05kk\vxD\x04|I\x05xl\nfy\x04Ce\vwB\nLk\vd]\noi\n}h\tQ]\npe\bVw\x04Hk\x04OQ\nzk\tAJ\npV\bPv\ny\\\tA{\x04Oi\bSB\x04XA\veE\tjp\nq}\tiD\x05qN\v^R\t\x7fm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\vHV\bTf\tTn\x04\\N\x04\\N\nuB\x05lv\nyu\tTd\bTf\bPL\v]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\\x05ia\bWZ\tcF\x04Jm\n{Z\bWO\x04_k\x04Df\x04RR\td\\\bVV\vxs\x04BN\x05ti\x04lm\tTd\t]y\vHV\tSo\v|j\x04XX\tA|\vZ^\vGu\bTW\x05M`\x04kF\vhZ\vVK\tdG\vBl\tay\nxU\x05qE\x05nO\bVw\nqI\x04CX\ne\x7f\tPl\bWO\vLm\tdL\x05uH\x04Cm\tdT\x04fn\vwB\x05ka\vnU\n@M\nyT\tHv\t\\}\x04Kh\td~\x04Yh\x05k}\neR\td\\\bWI\t|b\tHK\tiD\bTW\x05MY\npl\bQ_\twr\vAx\tHE\bTg\bSq\x05vp\vb\\\bWO\nOl\nsI\nfy\vID\t\\c\n{Z\n^~\npe\nAO\tTT\vxv\x04k_\bWO\v|j\vwB\tQy\ti@\tPl\tHa\tdZ\x05k}\x04ra\tUT\vJc\ved\np@\tQN\nd|\tkj\tHk\x04M`\noi\twr\td\\\nlq\no_\nlb\nL[\tac\x04BB\x04BH\x04Cm\npl\tIQ\bVK\vxs\n`e\viK\npa\x04Oi\tUS\bTp\tfD\nPG\x05kk\x04XA\nz\\\neg\vWh\twR\x05qN\nqS\tcn\x04lo\nxS\n^W\tBU\nt\x7f\tHE\tp\\\tfF\tfw\bVV\bW@\tak\vVK\x05ls\tVJ\bVV\veE\x04\\o\nyX\nYm\x04M`\x05lL\nd|\nzk\tA{\x05sE\twQ\x04XT\nt\x7f\tPl\t]y\vwT\x05{p\x04MD\vb\\\tQ]\x04Kj\tJn\nAH\vRb\tBU\tHK\t\\c\nfI\x05m\x7f\nqM\n@R\tSo\noi\x04BT\tHv\n_y\x04Kh\tBZ\t]i\bUJ\tV{\x04Sr\nbI\vGg\ta_\bTR\nfI\nfl\t[K\tII\x04S|\vuW\tiI\bWI\nqI\v|j\x04BV\bVg\bWZ\x04kF\vx]\bTA\tab\tfr\ti@\tJd\tJd\vps\nAO\bTa\x05xu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\vw}\vqO\ti[\bQ\x7f\bTz\vVF\twN\x05ts\tdw\bTv\neS\ngi\tNr\x05yS\npe\bVV\bSq\n`m\tyj\tBZ\vWX\bSB\tc\\\nUR\t[J\tc_\x04nM\bWQ\vAx\nMd\tBr\x05ui\vxY\bSM\vWc\v|j\vxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\veU\x04e^\bTg\nqI\tac\bPv\tcF\x04oQ\tQ\x7f\vhZ\x05ka\nz\\\tiK\tBU\n`k\tCP\x04S|\x04M`\n{I\tS{\x04_O\tBZ\x04Zi\x04Sk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\vGu\x05yS\nqA\t[r\neK\x04M`\tdZ\x05lL\bUg\bTl\nbD\tUS\vb\\\tpV\ncc\x04S\\\tct\t`z\bPL\vWs\nA`\neg\bSq\x05uE\x04CR\vDg\t`W\vz{\vWc\x04Sk\x04Sk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\vRb\bTQ\npl\x05Gt\vuW\x05uj\npF\nqI\tfL\t[I\tia\x04XO\nyu\vDg\ved\tq{\x04VG\bQ\x7f\x05ka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps\x04]j\tkV\toU\bTp\nzU\x05nB\vB]\ta{\bV@\n]n\x04m`\tcz\tR{\x04m`\bQa\vwT\bSM\x05MY\x05qN\tdj\x05~s\vQ}\x05MY\vMB\tBv\twR\bRg\vQ}\tql\vKC\nrm\x05xu\x04CC\vwB\vvh\tBq\x04Xq\npV\ti_\x05Ob\x05uE\nbd\nqo\v{i\nC~\tBL\veE\x05uH\bVj\x04Ey\x04Gz\vzR\v{i\tcf\n{Z\n]n\x04XA\vGu\vnU\thS\vGI\nCc\tHE\bTA\tHB\x04BH\x04Cj\nCc\bTF\tHE\nXI\tA{\bQ\x7f\tc\\\vmO\vWX\nfH\np@\x05MY\bTF\nlK\tBt\nzU\tTT\x04Km\vwT\npV\ndt\vyI\tVx\tQ\x7f\tRg\tTd\nzU\bRS\nLM\twA\x04nM\tTn\ndS\t]g\nLc\vwB\t}t\t[I\tCP\x04kX\vFm\vhZ\x05m\x7f\ti[\np@\vQ}\vW\x7f\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\vRb\tio\tPy\x04Y[\nxU\tct\v@@\tww\bPv\x04BM\x04FF\ntb\x05v|\vKm\tBq\tBq\x04Kh\x04`o\nZd\x04XU\ti]\t|`\tSt\x04B\\\bQ\x7f\v_W\tTJ\nqI\t|a\tA{\vuP\x04MD\tPl\nxR\tfL\vws\tc{\td\\\bV`\neg\tHK\x05kc\nd|\bVV\ny\\\x05kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\vW\x7f\nqs\x05lv\bSM\x04Zi\vVK\x05ia\vQB\tQ\x7f\n{Z\bPt\vKl\nlK\nhs\ndS\bVK\x05mf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\vDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\veU\nBf\tdj\x05Mr\n|p\t\\g\t]r\bVb\x05{D\nd[\x04XN\tfM\tO\\\x05s_\tcf\tiZ\x04XN\vWc\tqv\n`m\tU^\x05oD\nd|\vGg\tdE\vwf\x04lo\x04u}\nd|\x05oQ\t`i\x04Oi\vxD\ndZ\nCx\x04Yw\nzk\ntb\ngw\tyj\tB`\nyX\vps\ntC\vpP\vqw\bPu\bPX\tDm\npw\x05Nj\tss\taG\vxs\bPt\noL\x04Gz\tOk\ti@\ti]\x04eC\tIQ\tii\tdj\v@J\t|d\x05uh\bWZ\veU\vnU\bTa\tcC\x04g]\nzk\x04Yh\bVK\nLU\np@\ntb\ntR\tCj\vNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfD\x05ln\t|d\tbs\nqI\x05{B\vAx\np@\nzk\vRb\x05Os\vWS\x04e^\vD_\tBv\vWd\bVb\vxs\veE\bRw\n]n\n|p\vg|\tfw\x05kc\bTI\x05ka\n\\T\x04Sp\tju\vps\npe\x05u|\vGr\bVe\tCU\x04]M\x04XU\vxD\bTa\tIQ\vWq\tCU\tam\tdj\bSo\x04Sw\vnU\x04Ch\tQ]\x05s_\bPt\tfS\bTa\t\\}\n@O\x04Yc\tUZ\bTx\npe\vnU\nzU\t|}\tiD\nz\\\bSM\vxD\x04BR\nzQ\tQN\x04]M\x04Yh\nLP\vFm\vLX\x05vc\vql\x05ka\tHK\bVb\ntC\nCy\bTv\nuV\x04oQ\t`z\t[I\tB`\vRb\tyj\tsb\vWs\bTl\tkV\ved\ne\x7f\x05lL\vxN\t\x7fm\nJn\tjY\vxD\bVb\bSq\vyu\twL\vXL\bTA\tpg\tAt\tnD\x04XX\twR\npl\nhw\x05yS\nps\tcO\bW[\v|j\x04XN\tsV\tp\\\tBe\nb~\nAJ\n]e\x05k`\x05qN\tdw\tWV\tHE\vEV\x05Jz\tid\tB`\tzh\x05E]\tfD\bTg\x05qN\bTa\tja\x04Cv\bSM\nhc\bUe\x05t_\tie\x04g]\twQ\nPn\bVB\tjw\bVg\vbE\tBZ\vRH\bP{\tjp\n\\}\ta_\tcC\t|a\vD]\tBZ\ti[\tfD\vxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlK\x04oQ\x04lo\vLx\vM@\bWZ\x04Kn\vpg\nTi\nIv\n|r\v@}\x05Jz\x05Lm\x05Wh\x05k}\x05ln\vxD\n]s\x04gc\vps\tBr\bTW\vBM\x05tZ\nBY\x04DW\tjf\vSW\x04C}\nqo\tdE\tmv\tIQ\bPP\bUb\x05lv\x04BC\nzQ\t[I\vgl\nig\bUs\x04BT\vbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\vID\v|j\x04KO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\x0e\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\x0e\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\x0e\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\x0e\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\x0e\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\x0e\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\x7f\x7f#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsksbo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-iptfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\x0e\t?"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\x0e\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\x7f\x7fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\x0e\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\x0e\t\x0e\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\x0e\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl"..#fmgojfp#jm$^*8\x0e\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\x0e\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\x0e\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\x0e\t\x0e\t\x0e\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbmgjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\x0e\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\x0e\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\x0e\t\x0e\t?"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo\'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\x0e\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?"..#fmg?,psbm=??aq#,=\x0e\t\\slsvsp\x7fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\x0e\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8"..#wjwof!=?,irvfqz-?,elqn=\t+\vBl\bQ\x7f*+\vUm\x05Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\x0e\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\x0e\t?"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\x0e\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\x0e\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\x7fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\x0e\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@\x04Fr\vBl\bQ\x7f\tA{\vUm\x05Gx\tA{\x01yp\x06YA\0zX\bTV\bWl\bUd\x04BM\vB{\npV\v@x\x04B\\\np@\x04Db\x04Gz\tal\npa\tfM\tuD\bV~\x04mx\vQ}\ndS\tp\\\bVK\bS]\bU|\x05oD\tkV\ved\vHR\nb~\x04M`\nJp\x05oD\x04|Q\nLP\x04Sw\bTl\nAI\nxC\bWt\tBq\x05F`\x04Cm\vLm\tKx\t}t\bPv\ny\\\naB\tV\x7f\nZd\x04XU\x04li\tfr\ti@\tBH\x04BD\x04BV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\vxs\x04Zf\nqI\x04Zf\vBM\v|j\t}t\bSM\nmC\vQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\x0e\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\x0e\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\x0e\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\x0e\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\x0e\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\x0e\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\x0e,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\x0e?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\x0e\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw','fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\x7fwkvna\x7fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\x0e\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\x0e\t?kfbg=\x0e\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\x0e\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\x0e\t?,kfbg=\x0e\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\x0e\t\n?,gju=\x0e\t\x0e\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\x0e\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\x7fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\x0e\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\x0e\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\x0e\t?kfbg=\x0e\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\x0epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\x0e\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\x7f_p(\',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\x0e\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\x7f%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw"Xfmgje^..=\x0e\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?"Xfmgje^..=\x0e\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\x0e\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\x0e#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\x0e\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\x0e\t?,p`qjsw=\x0e\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\x0e\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\x0eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\x0e\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\x0e\t\x0e\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\x7f#?b#kqfe>!?"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\x0e\t?,p`qjsw=\x0e\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\x0e\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\x0e\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\vBl\bQ\x7f*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\x0e\t?,p`qjsw=\x0e\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\x7fwkvna\x7fofew\x7fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\x0e\t?-ip!=?,p`qjsw=\x0e\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*"y"W"W"["Q"U"V"@=i=l<^<\\=n=m!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\x7fqjdkw\x7fwkvna\x7f-ip!=?,p`qjsw=\x0e\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\x0e\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\x0e\t?,gju=\x0e\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\x0e\t?,gju=\x0e\t\x0e\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\x0e\t?,kwno=\x0e"y"W"W"["Q"U"V"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\x7fwkvna\x7fqjdkw\x7f1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\x0e\t?,kwno=\x0e\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?"GL@WZSF#kwno=\x0e\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\x7f#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\x0e\t?,gju=\x0e\t\x0e\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\x0e\t?,algz=\x0e\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\x0e\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\x0e\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\x0e\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\x0e\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\x0e\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\x0e\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?"GL@WZSF#kwno=\t?"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAO\x05Gx\bTA\nzk#+\vUm\x05Gx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=&*&'&^&\x88\u0178\u0c3e&\u01ad&\u0192&)&^&%&'&\x82&P&1&\xb1&3&]&m&u&E&t&C&\xcf&V&V&/&>&6&\u0f76\u177co&p&@&E&M&P&x&@&F&e&\xcc&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\u025e*\u03ea\u21f3&\u1372&K&;&)&E&H&P&0&?&9&V&\x81&-&v&a&,&E&)&?&=&'&'&B&\u0d2e&\u0503&\u0316*&*8&%&%&&&%,)&\x9a&>&\x86&7&]&F&2&>&J&6&n&2&%&?&\x8e&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\u053c\x84(,(<&,&\u03da&\u18c7&-&,(%&(&%&(\u013b0&X&D&\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\xc6-\u0360\u1ef3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\u072c\u2a25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\u1e78\xcc-&7&1&F&7&t&W&7&I&.&.&^&=\u0f9c\u19d3&8(>&/&/&\u077b')'\u1065')'%@/&0&%\u043e\u09c0*&*@&C\u053d\u05d4\u0274\u05eb4\u0dd7\u071a\u04d16\u0d84&/\u0178\u0303Z&*%\u0246\u03ff&\u0134&1\xa8\u04b4\u0174",w,"AAAAKKLLKKKKKJJIHHIHHGGFF"),function(f,w){if(w.length>31)throw new Error("sizeBits length must be at most "+wf(31));for(let f=0;f<4;++f)if(0!==w[f])throw new Error("first "+wf(4)+" must be 0");const b=N,j=$;j.set(w.subarray(0,w.length),0);let l=0;const m=f.length;for(let f=0;f=31)throw new Error("newSizeBits values must be less than 31");if(l+=f<m)throw new Error("newSizeBits is inconsistent: overflow")}}for(let f=w.length;f<32;++f)b[f]=l;if(l!==m)throw new Error("newSizeBits is inconsistent: underflow");L=f}(f,w)}function ff(f){this.data=new Int8Array(0),this.offset=0,this.data=f}function wf(f){return f.toString()}function bf(f,w,b,j){if(null===f)return-1;let l=Math.min(f.offset+j,f.data.length),m=l-f.offset;return w.set(f.data.subarray(f.offset,l),b),f.offset+=m,m}return function(f,w){let b=new Z;if(v(b,new ff(f)),w){let f=w.customDictionary;f&&function(f,w){if(1!==f.j)throw new Error("State MUST be freshly initialized");if(0===f.Vf&&(f.Tf=new Array(16),f.df=new Int32Array(16),f.tf=-1),15===f.Vf)throw new Error("Too many dictionary chunks");f.Tf[f.Vf]=w,f.Vf++,f.vf+=w.length,f.df[f.Vf]=f.vf}(b,f)}let j=0,l=[];for(;;){let f=new Int8Array(16384);if(l.push(f),b.nf=f,b.gf=0,b.lf=16384,b.mf=0,V(b),j+=b.mf,b.mf<16384)break}!function(f){if(0===f.j)throw new Error("State MUST be initialized");11!==f.j&&(f.j=11,null!==f.input&&(f.input=null))}(b);let m=new Int8Array(j),p=0;for(let f=0;f + + + + + + Blazor SpeechSynthesis Sample Site - WebAssembly App + + + + + + + + + + + + + +
+
Loading...
+ +
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + +