mirror of
https://github.com/anshuman-ecc-eth/hm-obsidian.git
synced 2026-07-22 14:00:28 +00:00
77 lines
204 KiB
JavaScript
77 lines
204 KiB
JavaScript
/*
|
||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||
if you want to view the source, please visit the github repository of this plugin
|
||
*/
|
||
|
||
"use strict";var li=Object.defineProperty;var df=Object.getOwnPropertyDescriptor;var lf=Object.getOwnPropertyNames;var hf=Object.prototype.hasOwnProperty;var Ra=e=>{throw TypeError(e)};var Na=(e,t)=>{for(var r in t)li(e,r,{get:t[r],enumerable:!0})},pf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of lf(t))!hf.call(e,s)&&s!==r&&li(e,s,{get:()=>t[s],enumerable:!(n=df(t,s))||n.enumerable});return e};var mf=e=>pf(li({},"__esModule",{value:!0}),e);var hi=(e,t,r)=>t.has(e)||Ra("Cannot "+r);var x=(e,t,r)=>(hi(e,t,"read from private field"),r?r.call(e):t.get(e)),k=(e,t,r)=>t.has(e)?Ra("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),U=(e,t,r,n)=>(hi(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Y=(e,t,r)=>(hi(e,t,"access private method"),r);var Pa=(e,t,r,n)=>({set _(s){U(e,t,s,r)},get _(){return x(e,t,n)}});var sh={};Na(sh,{default:()=>di});module.exports=mf(sh);var Ft=require("obsidian");var st=require("obsidian"),Ua={canisterId:"4p5ty-yyaaa-aaaam-qfana-cai",host:"https://icp-api.io",userPrincipal:"",bindingData:"",principal:null,importFolderName:"Hyvmind"},Us=class extends st.PluginSettingTab{constructor(t,r){super(t,r),this.plugin=r}display(){let{containerEl:t}=this;t.empty(),new st.Setting(t).setHeading().setName("Settings"),new st.Setting(t).setName("Canister ID").setDesc("The canister ID of the Hyvmind backend").addText(a=>a.setPlaceholder("Enter canister ID").setValue(this.plugin.settings.canisterId).onChange(c=>{this.plugin.settings.canisterId=c.trim(),this.plugin.saveSettings()})),new st.Setting(t).setName("Host").setDesc("Network host").addText(a=>a.setPlaceholder("https://icp-api.io").setValue(this.plugin.settings.host).onChange(c=>{this.plugin.settings.host=c.trim(),this.plugin.saveSettings()})),new st.Setting(t).setHeading().setName("Import"),new st.Setting(t).setName("Import Folder").setDesc("Folder name in vault root where downloaded notes will be placed").addText(a=>a.setPlaceholder("Hyvmind").setValue(this.plugin.settings.importFolderName).onChange(c=>{this.plugin.settings.importFolderName=c.trim()||"Hyvmind",this.plugin.saveSettings()})),new st.Setting(t).setHeading().setName("Plugin binding"),t.createDiv({cls:"hyvmind-auth-desc"}).createEl("p",{text:"Link this plugin to your Hyvmind account so uploads appear in your notes."}),new st.Setting(t).setName("Your Hyvmind principal").setDesc("Copy this from Hyvmind.app settings \u2192 plugin binding").addText(a=>a.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(c=>{this.plugin.settings.userPrincipal=c.trim(),this.plugin.saveSettings()})),new st.Setting(t).setName("Plugin principal").setDesc("Your plugin's identity \u2014 share this when binding").addText(a=>a.setValue(this.plugin.binding.getPrincipalText()||"").setDisabled(!0));let n=t.createDiv({cls:"hyvmind-auth-buttons"}),s=new st.ButtonComponent(n);s.setButtonText("Request"),s.setCta(),s.onClick(()=>{this.handleRequestBinding()}),new st.Setting(t).setName("Binding status").setDesc("Current binding state"),this.bindingStatusEl=t.createDiv({cls:"hyvmind-token-status"}),this.updateBindingStatus();let o=new st.ButtonComponent(n);o.setButtonText("Clear"),o.buttonEl.classList.add("mod-warning"),o.onClick(()=>{this.plugin.binding.clearBinding(),this.plugin.settings.principal=null,this.plugin.saveSettings(),this.updateBindingStatus(),new st.Notice("Local binding cleared (identity preserved)")}),this.addPrivacySection(t),new st.Setting(t).setName("Manual binding").setDesc("If auto-check fails, paste your principal here and confirm").addText(a=>a.setPlaceholder("Your principal ID").setValue(this.plugin.settings.userPrincipal).onChange(c=>{this.plugin.settings.userPrincipal=c.trim(),this.plugin.saveSettings()}));let i=new st.ButtonComponent(n);i.setButtonText("Confirm"),i.onClick(()=>{let a=this.plugin.settings.userPrincipal;if(!a){new st.Notice("Enter your Hyvmind principal first");return}this.plugin.binding.persistBoundUser(a),this.plugin.settings.principal=a,this.plugin.saveSettings(),this.updateBindingStatus(),new st.Notice("Binding confirmed manually")})}async handleRequestBinding(){let t=this.plugin.settings.userPrincipal;if(!t){new st.Notice("Please enter your Hyvmind principal first");return}let r=this.plugin.binding.getIdentity();if(!r){new st.Notice("Plugin identity not initialized");return}try{await this.plugin.agent.requestPluginBinding(r.getPrincipal().toText(),t),new st.Notice("Binding request sent! Approve it in Hyvmind.app settings")}catch(n){new st.Notice(`Failed to request binding: ${n instanceof Error?n.message:String(n)}`)}}addPrivacySection(t){t.createEl("hr"),new st.Setting(t).setName("Privacy notice").setHeading(),t.createEl("p",{text:"Folder contents are sent to Hyvmind's frontend canister.",cls:"hyvmind-privacy-notice"})}updateBindingStatus(){this.bindingStatusEl.empty();let t=this.bindingStatusEl.createSpan({cls:"hyvmind-status"});if(this.plugin.binding.isBound()){t.addClass("hyvmind-status-valid");let r=this.plugin.binding.getBoundUser();t.setText(`Bound to ${r?r.slice(0,8)+"...":"user"}`)}else t.addClass("hyvmind-status-none"),t.setText("Not bound")}};var qa;(function(e){e[e.SysFatal=1]="SysFatal",e[e.SysTransient=2]="SysTransient",e[e.DestinationInvalid=3]="DestinationInvalid",e[e.CanisterReject=4]="CanisterReject",e[e.CanisterError=5]="CanisterError"})(qa||(qa={}));var Qe;(function(e){e.Replied="replied",e.Rejected="rejected"})(Qe||(Qe={}));function Da(e){return e!=null&&"reject_code"in e}function Fa(e){return e!=null&&"certificate"in e}var qs="abcdefghijklmnopqrstuvwxyz234567",en=Object.create(null);for(let e=0;e<qs.length;e++)en[qs[e]]=e;en[0]=en.o;en[1]=en.i;function Ma(e){let t=0,r=0,n="";function s(o){return t<0?r|=o>>-t:r=o<<t&248,t>3?(t-=8,1):(t<4&&(n+=qs[r>>3],t+=5),0)}for(let o=0;o<e.length;)o+=s(e[o]);return n+(t<0?qs[r>>3]:"")}function ka(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),s=0;function o(i){let a=en[i.toLowerCase()];if(a===void 0)throw new Error(`Invalid character: ${JSON.stringify(i)}`);a<<=3,r|=a>>>t,t+=5,t>=8&&(n[s++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let i of e)o(i);return n.slice(0,s)}var yf=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function $a(e){let t=-1;for(let r=0;r<e.length;r++){let s=(e[r]^t)&255;t=yf[s]^t>>>8}return(t^-1)>>>0}var Sr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Be(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function pi(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function dt(e,...t){if(!Be(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function mi(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Va(e,t){dt(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Ir(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Fs(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ae(e,t){return e<<32-t|e>>>t}var ja=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",bf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function V(e){if(dt(e),ja)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=bf[e[r]];return t}var Ne={_0:48,_9:57,A:65,F:70,a:97,f:102};function La(e){if(e>=Ne._0&&e<=Ne._9)return e-Ne._0;if(e>=Ne.A&&e<=Ne.F)return e-(Ne.A-10);if(e>=Ne.a&&e<=Ne.f)return e-(Ne.a-10)}function Bt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(ja)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let s=0,o=0;s<r;s++,o+=2){let i=La(e.charCodeAt(o)),a=La(e.charCodeAt(o+1));if(i===void 0||a===void 0){let c=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[s]=i*16+a}return n}function z(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function yi(e){return typeof e=="string"&&(e=z(e)),dt(e),e}function K(...e){let t=0;for(let n=0;n<e.length;n++){let s=e[n];dt(s),t+=s.length}let r=new Uint8Array(t);for(let n=0,s=0;n<e.length;n++){let o=e[n];r.set(o,s),s+=o.length}return r}var Ds=class{};function Ms(e){let t=n=>e().update(yi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function rn(e=32){if(Sr&&typeof Sr.getRandomValues=="function")return Sr.getRandomValues(new Uint8Array(e));if(Sr&&typeof Sr.randomBytes=="function")return Uint8Array.from(Sr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function gf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(r>>s&o),a=Number(r&o),c=n?4:0,f=n?0:4;e.setUint32(t+c,i,n),e.setUint32(t+f,a,n)}function Ha(e,t,r){return e&t^~e&r}function Ka(e,t,r){return e&t^e&r^t&r}var qn=class extends Ds{constructor(t,r,n,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Fs(this.buffer)}update(t){mi(this),t=yi(t),dt(t);let{view:r,buffer:n,blockLen:s}=this,o=t.length;for(let i=0;i<o;){let a=Math.min(s-this.pos,o-i);if(a===s){let c=Fs(t);for(;s<=o-i;i+=s)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===s&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){mi(this),Va(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;r[i++]=128,Ir(this.buffer.subarray(i)),this.padOffset>s-i&&(this.process(n,0),i=0);for(let d=i;d<s;d++)r[d]=0;gf(n,s-8,BigInt(this.length*8),o),this.process(n,0);let a=Fs(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let f=c/4,l=this.get();if(f>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<f;d++)a.setUint32(4*d,l[d],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:s,finished:o,destroyed:i,pos:a}=this;return t.destroyed=i,t.finished=o,t.length=s,t.pos=a,s%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},Pe=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ue=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]);var _t=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var ks=BigInt(4294967295),Ga=BigInt(32);function xf(e,t=!1){return t?{h:Number(e&ks),l:Number(e>>Ga&ks)}:{h:Number(e>>Ga&ks)|0,l:Number(e&ks)|0}}function Za(e,t=!1){let r=e.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let o=0;o<r;o++){let{h:i,l:a}=xf(e[o],t);[n[o],s[o]]=[i,a]}return[n,s]}var bi=(e,t,r)=>e>>>r,gi=(e,t,r)=>e<<32-r|t>>>r,Ar=(e,t,r)=>e>>>r|t<<32-r,Cr=(e,t,r)=>e<<32-r|t>>>r,Dn=(e,t,r)=>e<<64-r|t>>>r-32,Fn=(e,t,r)=>e>>>r-32|t<<64-r;function Te(e,t,r,n){let s=(t>>>0)+(n>>>0);return{h:e+r+(s/2**32|0)|0,l:s|0}}var Ya=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),za=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Xa=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Wa=(e,t,r,n,s)=>t+r+n+s+(e/2**32|0)|0,Ja=(e,t,r,n,s)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(s>>>0),Qa=(e,t,r,n,s,o)=>t+r+n+s+o+(e/2**32|0)|0;var Ef=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),tr=new Uint32Array(64),$s=class extends qn{constructor(t=32){super(64,t,8,!1),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}get(){let{A:t,B:r,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[t,r,n,s,o,i,a,c]}set(t,r,n,s,o,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let d=0;d<16;d++,r+=4)tr[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let u=tr[d-15],h=tr[d-2],p=ae(u,7)^ae(u,18)^u>>>3,m=ae(h,17)^ae(h,19)^h>>>10;tr[d]=m+tr[d-7]+p+tr[d-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:f,H:l}=this;for(let d=0;d<64;d++){let u=ae(a,6)^ae(a,11)^ae(a,25),h=l+u+Ha(a,c,f)+Ef[d]+tr[d]|0,m=(ae(n,2)^ae(n,13)^ae(n,22))+Ka(n,s,o)|0;l=f,f=c,c=a,a=i+h|0,i=o,o=s,s=n,n=h+m|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,l=l+this.H|0,this.set(n,s,o,i,a,c,f,l)}roundClean(){Ir(tr)}destroy(){this.set(0,0,0,0,0,0,0,0),Ir(this.buffer)}},xi=class extends $s{constructor(){super(28),this.A=Ue[0]|0,this.B=Ue[1]|0,this.C=Ue[2]|0,this.D=Ue[3]|0,this.E=Ue[4]|0,this.F=Ue[5]|0,this.G=Ue[6]|0,this.H=Ue[7]|0}},tc=Za(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),_f=tc[0],vf=tc[1],er=new Uint32Array(80),rr=new Uint32Array(80),wi=class extends qn{constructor(t=64){super(128,t,16,!1),this.Ah=_t[0]|0,this.Al=_t[1]|0,this.Bh=_t[2]|0,this.Bl=_t[3]|0,this.Ch=_t[4]|0,this.Cl=_t[5]|0,this.Dh=_t[6]|0,this.Dl=_t[7]|0,this.Eh=_t[8]|0,this.El=_t[9]|0,this.Fh=_t[10]|0,this.Fl=_t[11]|0,this.Gh=_t[12]|0,this.Gl=_t[13]|0,this.Hh=_t[14]|0,this.Hl=_t[15]|0}get(){let{Ah:t,Al:r,Bh:n,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:f,El:l,Fh:d,Fl:u,Gh:h,Gl:p,Hh:m,Hl:g}=this;return[t,r,n,s,o,i,a,c,f,l,d,u,h,p,m,g]}set(t,r,n,s,o,i,a,c,f,l,d,u,h,p,m,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=l|0,this.Fh=d|0,this.Fl=u|0,this.Gh=h|0,this.Gl=p|0,this.Hh=m|0,this.Hl=g|0}process(t,r){for(let b=0;b<16;b++,r+=4)er[b]=t.getUint32(r),rr[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let v=er[b-15]|0,T=rr[b-15]|0,I=Ar(v,T,1)^Ar(v,T,8)^bi(v,T,7),S=Cr(v,T,1)^Cr(v,T,8)^gi(v,T,7),C=er[b-2]|0,_=rr[b-2]|0,A=Ar(C,_,19)^Dn(C,_,61)^bi(C,_,6),q=Cr(C,_,19)^Fn(C,_,61)^gi(C,_,6),R=Xa(S,q,rr[b-7],rr[b-16]),E=Wa(R,I,A,er[b-7],er[b-16]);er[b]=E|0,rr[b]=R|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:f,Dl:l,Eh:d,El:u,Fh:h,Fl:p,Gh:m,Gl:g,Hh:y,Hl:w}=this;for(let b=0;b<80;b++){let v=Ar(d,u,14)^Ar(d,u,18)^Dn(d,u,41),T=Cr(d,u,14)^Cr(d,u,18)^Fn(d,u,41),I=d&h^~d&m,S=u&p^~u&g,C=Ja(w,T,S,vf[b],rr[b]),_=Qa(C,y,v,I,_f[b],er[b]),A=C|0,q=Ar(n,s,28)^Dn(n,s,34)^Dn(n,s,39),R=Cr(n,s,28)^Fn(n,s,34)^Fn(n,s,39),E=n&o^n&a^o&a,B=s&i^s&c^i&c;y=m|0,w=g|0,m=h|0,g=p|0,h=d|0,p=u|0,{h:d,l:u}=Te(f|0,l|0,_|0,A|0),f=a|0,l=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let P=Ya(A,R,B);n=za(P,_,q,E),s=P|0}({h:n,l:s}=Te(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=Te(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=Te(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l}=Te(this.Dh|0,this.Dl|0,f|0,l|0),{h:d,l:u}=Te(this.Eh|0,this.El|0,d|0,u|0),{h,l:p}=Te(this.Fh|0,this.Fl|0,h|0,p|0),{h:m,l:g}=Te(this.Gh|0,this.Gl|0,m|0,g|0),{h:y,l:w}=Te(this.Hh|0,this.Hl|0,y|0,w|0),this.set(n,s,o,i,a,c,f,l,d,u,h,p,m,g,y,w)}roundClean(){Ir(er,rr)}destroy(){Ir(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Tt=Ms(()=>new $s),ec=Ms(()=>new xi),rc=Ms(()=>new wi);var Ls="__principal__",Bf=2,nc=4,Tf="aaaaa-aa",$=class e{static anonymous(){return new this(new Uint8Array([nc]))}static managementCanister(){return this.fromText(Tf)}static selfAuthenticating(t){let r=ec(t);return new this(new Uint8Array([...r,Bf]))}static from(t){if(typeof t=="string")return e.fromText(t);if(Object.getPrototypeOf(t)===Uint8Array.prototype)return new e(t);if(e.isPrincipal(t))return new e(t._arr);throw new Error(`Impossible to convert ${JSON.stringify(t)} to Principal.`)}static fromHex(t){return new this(Bt(t))}static fromText(t){let r=t;if(t.includes(Ls)){let i=JSON.parse(t);Ls in i&&(r=i[Ls])}let n=r.toLowerCase().replace(/-/g,""),s=ka(n);s=s.slice(4,s.length);let o=new this(s);if(o.toText()!==r)throw new Error(`Principal "${o.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return o}static fromUint8Array(t){return new this(t)}static isPrincipal(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isPrincipal"in t&&t._isPrincipal===!0&&"_arr"in t&&t._arr instanceof Uint8Array}constructor(t){this._arr=t,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===nc}toUint8Array(){return this._arr}toHex(){return V(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,$a(this._arr));let n=new Uint8Array(t),s=new Uint8Array([...n,...this._arr]),i=Ma(s).match(/.{1,5}/g);if(!i)throw new Error;return i.join("-")}toString(){return this.toText()}toJSON(){return{[Ls]:this.toText()}}compareTo(t){for(let r=0;r<Math.min(this._arr.length,t._arr.length);r++){if(this._arr[r]<t._arr[r])return"lt";if(this._arr[r]>t._arr[r])return"gt"}return this._arr.length<t._arr.length?"lt":this._arr.length>t._arr.length?"gt":"eq"}ltEq(t){let r=this.compareTo(t);return r=="lt"||r=="eq"}gtEq(t){let r=this.compareTo(t);return r=="gt"||r=="eq"}};var qe;(function(e){e.Trust="Trust",e.Protocol="Protocol",e.Reject="Reject",e.Transport="Transport",e.External="External",e.Limit="Limit",e.Input="Input",e.Unknown="Unknown"})(qe||(qe={}));var Vs;(function(e){e.Normal="normal",e.Verbose="verbose"})(Vs||(Vs={}));var Sf=new Set(["arg","certificate","nonce"]);function Ei(e){return(t,r)=>r instanceof Uint8Array?e===Vs.Normal&&Sf.has(t)?`<${r.length} bytes, set ErrorCode.verbosity = ErrorVerbosity.Verbose to display>`:`hex(${r.length}):${V(r)}`:r}var lo=class lo{constructor(t=!1){this.isCertified=t}toString(){let t=this.toErrorMessage();return this.requestContext&&(t+=`
|
||
Request context:
|
||
Request ID (hex): ${this.requestContext.requestId?V(this.requestContext.requestId):"undefined"}
|
||
Sender pubkey (hex): ${V(this.requestContext.senderPubKey)}
|
||
Sender signature (hex): ${V(this.requestContext.senderSignature)}
|
||
Ingress expiry: ${this.requestContext.ingressExpiry.toString()}`),this.callContext&&(t+=`
|
||
Call context:
|
||
Canister ID: ${this.callContext.canisterId.toText()}
|
||
Method name: ${this.callContext.methodName}`,"httpDetails"in this.callContext&&(t+=`
|
||
HTTP details: ${JSON.stringify(this.callContext.httpDetails,Ei(lo.verbosity),2)}`)),t}};lo.verbosity=Vs.Normal;var H=lo,Kt=class e extends Error{get code(){return this.cause.code}set code(t){this.cause.code=t}get kind(){return this.cause.kind}set kind(t){this.cause.kind=t}get isCertified(){return this.code.isCertified}constructor(t,r){super(t.toString()),this.name="AgentError",this.cause={code:t,kind:r},Object.setPrototypeOf(this,e.prototype)}hasCode(t){return this.code instanceof t}toString(){return`${this.name} (${this.kind}): ${this.message}`}},De=class extends Kt{static fromCode(t){return new this(t)}},Mt=class e extends De{constructor(t){super(t,qe.Trust),this.name="TrustError",Object.setPrototypeOf(this,e.prototype)}},rt=class e extends De{constructor(t){super(t,qe.Protocol),this.name="ProtocolError",Object.setPrototypeOf(this,e.prototype)}},ce=class e extends De{constructor(t){super(t,qe.Reject),this.name="RejectError",Object.setPrototypeOf(this,e.prototype)}},Mn=class e extends De{constructor(t){super(t,qe.Transport),this.name="TransportError",Object.setPrototypeOf(this,e.prototype)}},St=class e extends De{constructor(t){super(t,qe.External),this.name="ExternalError",Object.setPrototypeOf(this,e.prototype)}};var J=class e extends De{constructor(t){super(t,qe.Input),this.name="InputError",Object.setPrototypeOf(this,e.prototype)}},it=class e extends De{constructor(t){super(t,qe.Unknown),this.name="UnknownError",Object.setPrototypeOf(this,e.prototype)}},ue=class e extends H{constructor(t,r){super(),this.reason=t,this.error=r,this.name="CertificateVerificationErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=this.reason;return this.error&&(t+=`: ${Kn(this.error)}`),`Certificate verification error: "${t}"`}},Fe=class e extends H{constructor(t,r,n,s,o){super(),this.maxAgeInMinutes=t,this.certificateTime=r,this.currentTime=n,this.timeDiffMsecs=s,this.ageType=o,this.name="CertificateTimeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Certificate is signed more than ${this.maxAgeInMinutes} minutes in the ${this.ageType}. Certificate time: ${this.certificateTime.toISOString()} Current time: ${this.currentTime.toISOString()} Clock drift: ${this.timeDiffMsecs}ms`}},js=class e extends H{constructor(){super(),this.name="CertificateHasTooManyDelegationsErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Certificate has too many delegations"}},Or=class e extends H{constructor(t,r){super(),this.canisterId=t,this.subnetId=r,this.name="CertificateNotAuthorizedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate contains a delegation that does not include the canister ${this.canisterId.toText()} in the canister_ranges field. Subnet ID: ${this.subnetId.toText()}`}},Hs=class e extends H{constructor(t){super(),this.subnetId=t,this.name="CertificateNotAuthorizedForSubnetErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate is not authorized for subnet ${this.subnetId.toText()}`}},fe=class e extends H{constructor(t,r){super(),this.message=t,this.lookupStatus=r,this.name="LookupErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Lookup status: ${this.lookupStatus}`}},Ks=class e extends H{constructor(t){super(),this.message=t,this.name="MalformedLookupFoundValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},Gs=class e extends H{constructor(t){super(),this.message=t,this.name="MissingLookupValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},nn=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerKeyLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key must be ${this.expectedLength} bytes long, but is ${this.actualLength} bytes long`}},Zs=class e extends H{constructor(t,r){super(),this.expectedPrefix=t,this.actualPrefix=r,this.name="DerPrefixMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key is invalid. Expected the following prefix: ${V(this.expectedPrefix)}, but got ${V(this.actualPrefix)}`}},Ys=class e extends H{constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerDecodeLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`DER payload mismatch: Expected length ${this.expectedLength}, actual length: ${this.actualLength}`}},de=class e extends H{constructor(t){super(),this.error=t,this.name="DerDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode DER: ${this.error}`}},kn=class e extends H{constructor(t){super(),this.error=t,this.name="DerEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode DER: ${this.error}`}},zs=class e extends H{constructor(t,r){super(),this.error=t,this.input=r,this.name="CborDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode CBOR: ${Kn(this.error)}, input: ${V(this.input)}`}},Xs=class e extends H{constructor(t,r){super(),this.error=t,this.value=r,this.name="CborEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode CBOR: ${Kn(this.error)}, input: ${this.value}`}};var Rr=class e extends H{constructor(t,r,n){super(),this.message=t,this.requestId=r,this.status=n,this.name="TimeoutWaitingForResponseErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`${this.message}
|
||
`;return this.requestId&&(t+=` Request ID: ${V(this.requestId)}
|
||
`),this.status&&(t+=` Request status: ${this.status}
|
||
`),t}},Ws=class e extends H{constructor(t,r,n){super(),this.maxIngressExpiryInMinutes=t,this.requestId=r,this.retryTimes=n,this.name="CertificateOutdatedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`Certificate is stale (over ${this.maxIngressExpiryInMinutes} minutes). Is the computer's clock synchronized?
|
||
Request ID: ${V(this.requestId)}
|
||
`;return this.retryTimes!==void 0&&(t+=` Retried ${this.retryTimes} times.`),t}},Js=class e extends H{constructor(t,r,n,s){super(!0),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=s,this.name="CertifiedRejectErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
||
Request ID: ${V(this.requestId)}
|
||
Reject code: ${this.rejectCode}
|
||
Reject text: ${this.rejectMessage}
|
||
Error code: ${this.rejectErrorCode}
|
||
`}},Qs=class e extends H{constructor(t,r,n,s,o){super(),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=s,this.signatures=o,this.name="UncertifiedRejectErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
||
Request ID: ${V(this.requestId)}
|
||
Reject code: ${this.rejectCode}
|
||
Reject text: ${this.rejectMessage}
|
||
Error code: ${this.rejectErrorCode}
|
||
`}},to=class e extends H{constructor(t,r,n,s){super(),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=s,this.name="UncertifiedRejectUpdateErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
||
Request ID: ${V(this.requestId)}
|
||
Reject code: ${this.rejectCode}
|
||
Reject text: ${this.rejectMessage}
|
||
Error code: ${this.rejectErrorCode}
|
||
`}},eo=class e extends H{constructor(t){super(),this.requestId=t,this.name="RequestStatusDoneNoReplyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Call was marked as done but we never saw the reply:
|
||
Request ID: ${V(this.requestId)}
|
||
`}},le=class e extends H{constructor(t){super(),this.shouldFetchRootKey=t,this.name="MissingRootKeyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.shouldFetchRootKey===void 0?"Agent is missing root key":`Agent is missing root key and the shouldFetchRootKey value is set to ${this.shouldFetchRootKey}. The root key should only be unknown if you are in local development. Otherwise you should avoid fetching and use the default IC Root Key or the known root key of your environment.`}},ro=class e extends H{constructor(t){super(),this.value=t,this.name="HashValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Attempt to hash a value of unsupported type: ${this.value}`}},nr=class e extends H{constructor(){super(),this.name="IdentityInvalidErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"This identity has expired due this application's security policy. Please refresh your authentication."}},Se=class e extends H{constructor(t,r){super(),this.message=t,this.providedIngressExpiryInMinutes=r,this.name="IngressExpiryInvalidErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Provided ingress expiry time is ${this.providedIngressExpiryInMinutes} minutes.`}},no=class e extends H{constructor(){super(),this.name="MissingFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"No fetch implementation available. Provide a `fetch` function in HttpAgentOptions or ensure `globalThis.fetch` is defined."}},so=class e extends H{constructor(){super(),this.name="CreateHttpAgentErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Failed to create agent from provided agent"}},oo=class e extends H{constructor(t,r){super(),this.signatureCount=t,this.maxExpected=r,this.name="ExcessiveSignaturesErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Query response contains ${this.signatureCount} signatures, which exceeds the subnet size of ${this.maxExpected}. This suggests a malformed or malicious response.`}},io=class e extends H{constructor(t){super(),this.error=t,this.name="MalformedSignatureErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Query response contained a malformed signature: ${this.error}`}};var ao=class e extends H{constructor(){super(),this.name="MalformedPublicKeyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Read state response contained a malformed public key"}},co=class e extends H{constructor(t){super(),this.nodeId=t,this.name="QuerySignatureVerificationFailedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Query signature verification failed. Node ID: ${this.nodeId}`}},vt=class e extends H{constructor(t){super(),this.error=t,this.name="UnexpectedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Unexpected error: ${Kn(this.error)}`}},uo=class e extends H{constructor(t,r,n,s){super(),this.status=t,this.requestId=r,this.response=n,this.rawCertificate=s,this.name="UnexpectedV4StatusErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=(r,n)=>n instanceof Uint8Array?`hex(${n.length}):${V(n)}`:n;return`Unexpected request status in v4 sync response: "${this.status}"
|
||
Request ID (hex): ${V(this.requestId)}
|
||
Response: ${JSON.stringify(this.response,t,2)}`}},sr=class e extends H{constructor(t){super(),this.error=t,this.name="HashTreeDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode certificate: ${this.error}`}},$n=class e extends H{constructor(t,r,n,s){super(),this.status=t,this.statusText=r,this.headers=n,this.bodyText=s,this.name="HttpErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`HTTP request failed:
|
||
Status: ${this.status} (${this.statusText})
|
||
Headers: ${JSON.stringify(this.headers,Ei(H.verbosity))}
|
||
`;return this.bodyText&&(t+=` Body: ${this.bodyText}
|
||
`),t}},Ln=class e extends H{constructor(){super(),this.name="HttpV4ApiNotSupportedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"HTTP request failed: v4 API is not supported"}},Vn=class e extends H{constructor(t){super(),this.error=t,this.name="HttpFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to fetch HTTP request: ${Kn(this.error)}`}},jn=class e extends H{constructor(t){super(),this.receivedCanisterId=t,this.name="MissingCanisterIdErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Canister ID is required, but received ${typeof this.receivedCanisterId} instead. If you are using automatically generated declarations, this may be because your application is not setting the canister ID in process.env correctly.`}},fo=class e extends H{constructor(t){super(),this.request=t,this.name="InvalidReadStateRequestErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Invalid read state request: ${this.request}`}},Hn=class e extends H{constructor(t){super(),this.error=t,this.name="ExpiryJsonDeserializeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to deserialize expiry: ${this.error}`}};function Kn(e){var t;if(e instanceof Error)return(t=e.stack)!=null?t:e.message;try{return JSON.stringify(e,Ei(H.verbosity))}catch(r){return String(e)}}var Xt=new Error("unreachable");var cr={};Na(cr,{Bool:()=>lc,BoolClass:()=>bo,CandidDecodeError:()=>kt,ConstructType:()=>Ae,Empty:()=>fc,EmptyClass:()=>Zn,FixedIntClass:()=>$e,FixedNatClass:()=>Ie,Float32:()=>bc,Float64:()=>gc,FloatClass:()=>Xn,Func:()=>Uc,FuncClass:()=>Ur,Int:()=>mc,Int16:()=>wc,Int32:()=>Ec,Int64:()=>_c,Int8:()=>xc,IntClass:()=>Yn,Nat:()=>yc,Nat16:()=>Bc,Nat32:()=>Tc,Nat64:()=>Sc,Nat8:()=>vc,NatClass:()=>zn,Null:()=>hc,NullClass:()=>Nr,Opt:()=>Oc,OptClass:()=>ar,PrimitiveType:()=>$t,Principal:()=>Ic,PrincipalClass:()=>wo,Rec:()=>Pc,RecClass:()=>Wt,Record:()=>Rc,RecordClass:()=>Pr,Reserved:()=>dc,ReservedClass:()=>Ce,Service:()=>qc,ServiceClass:()=>fn,Text:()=>pc,TextClass:()=>go,Tuple:()=>Ac,TupleClass:()=>xo,Type:()=>an,Unknown:()=>Rf,UnknownClass:()=>yo,Variant:()=>Nc,VariantClass:()=>un,Vec:()=>Cc,VecClass:()=>cn,Visitor:()=>Ii,decode:()=>Of,encode:()=>Cf,resetSubtypeCache:()=>Ai,subtype:()=>Oi});function Q(...e){let t=new Uint8Array(e.reduce((n,s)=>n+s.byteLength,0)),r=0;for(let n of e)t.set(n,r),r+=n.byteLength;return t}var he=class{save(){return this._view}restore(t){if(!(t instanceof Uint8Array))throw new Error("Checkpoint must be a Uint8Array");this._view=t}constructor(t,r=(t==null?void 0:t.byteLength)||0){if(t&&!(t instanceof Uint8Array))try{t=sn(t)}catch(n){throw new Error("Buffer must be a Uint8Array")}if(r<0||!Number.isInteger(r))throw new Error("Length must be a non-negative integer");if(t&&r>t.byteLength)throw new Error("Length cannot exceed buffer length");this._buffer=t||new Uint8Array(0),this._view=new Uint8Array(this._buffer.buffer,0,r)}get buffer(){return this._view.slice()}get byteLength(){return this._view.byteLength}read(t){let r=this._view.subarray(0,t);return this._view=this._view.subarray(t),r.slice()}readUint8(){if(this._view.byteLength===0)return;let t=this._view[0];return this._view=this._view.subarray(1),t}write(t){if(!(t instanceof Uint8Array))throw new Error("Buffer must be a Uint8Array");let r=this._view.byteLength;this._view.byteOffset+this._view.byteLength+t.byteLength>=this._buffer.byteLength?this.alloc(t.byteLength):this._view=new Uint8Array(this._buffer.buffer,this._view.byteOffset,this._view.byteLength+t.byteLength),this._view.set(t,r)}get end(){return this._view.byteLength===0}alloc(t){if(t<=0||!Number.isInteger(t))throw new Error("Amount must be a positive integer");let r=new Uint8Array((this._buffer.byteLength+t)*1.2|0),n=new Uint8Array(r.buffer,0,this._view.byteLength+t);n.set(this._view),this._buffer=r,this._view=n}};function sn(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?sn(e.buffer):new Uint8Array(e)}function on(e,t){if(e.byteLength!==t.byteLength)return e.byteLength-t.byteLength;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e[r]-t[r];return 0}function sc(e,t){return on(e,t)===0}function oc(e){if(!(e instanceof Uint8Array))throw new Error("Input must be a Uint8Array");return new DataView(e.buffer,e.byteOffset,e.byteLength)}function If(e){let r=new TextEncoder().encode(e),n=0;for(let s of r)n=(n*223+s)%2**32;return n}function Rt(e){if(/^_\d+_$/.test(e)||/^_0x[0-9a-fA-F]+_$/.test(e)){let t=+e.slice(1,-1);if(Number.isSafeInteger(t)&&t>=0&&t<2**32)return t}return If(e)}function _i(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function ho(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<<t}function ic(){throw new Error("unexpected end of buffer")}function ir(e,t){return e.byteLength<t&&ic(),e.read(t)}function or(e){let t=e.readUint8();return t===void 0&&ic(),t}function ot(e){if(typeof e=="number"&&(e=BigInt(e)),e<BigInt(0))throw new Error("Cannot leb encode negative values.");let t=(e===BigInt(0)?0:_i(e))+1,r=new he(new Uint8Array(t),0);for(;;){let n=Number(e&BigInt(127));if(e/=BigInt(128),e===BigInt(0)){r.write(new Uint8Array([n]));break}else r.write(new Uint8Array([n|128]))}return r.buffer}function ht(e){let t=BigInt(1),r=BigInt(0),n;do n=or(e),r+=BigInt(n&127).valueOf()*t,t*=BigInt(128);while(n>=128);return r}function pt(e){typeof e=="number"&&(e=BigInt(e));let t=e<BigInt(0);t&&(e=-e-BigInt(1));let r=(e===BigInt(0)?0:_i(e))+1,n=new he(new Uint8Array(r),0);for(;;){let o=s(e);if(e/=BigInt(128),t&&e===BigInt(0)&&(o&64)!==0||!t&&e===BigInt(0)&&(o&64)===0){n.write(new Uint8Array([o]));break}else n.write(new Uint8Array([o|128]))}function s(o){let i=o%BigInt(128);return Number(t?BigInt(128)-i-BigInt(1):i)}return n.buffer}function Me(e){let t=new Uint8Array(e.buffer),r=0;for(;r<t.byteLength;r++)if(t[r]<128){if((t[r]&64)===0)return ht(e);break}let n=new Uint8Array(ir(e,r+1)),s=BigInt(0);for(let o=n.byteLength-1;o>=0;o--)s=s*BigInt(128)+BigInt(128-(n[o]&127)-1);return-s-BigInt(1)}function ac(e,t){if(BigInt(e)<BigInt(0))throw new Error("Cannot write negative values.");return vi(e,t)}function vi(e,t){e=BigInt(e);let r=new he(new Uint8Array(Math.min(1,t)),0),n=0,s=BigInt(256),o=BigInt(0),i=Number(e%s);for(r.write(new Uint8Array([i]));++n<t;)e<0&&o===BigInt(0)&&i!==0&&(o=BigInt(1)),i=Number((e/s-o)%BigInt(256)),r.write(new Uint8Array([i])),s*=BigInt(256);return r.buffer}function Bi(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=BigInt(or(e)),n=BigInt(1),s=0;for(;++s<t;){n*=BigInt(256);let o=BigInt(or(e));r=r+n*o}return r}function cc(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=Bi(e,t),n=BigInt(2)**(BigInt(8)*BigInt(t-1)+BigInt(7));return r>=n&&(r-=n*BigInt(2)),r}var kt=class e extends Error{constructor(t){super(t),this.name="CandidDecodeError",Object.setPrototypeOf(this,e.prototype)}},et;(function(e){e[e.Null=-1]="Null",e[e.Bool=-2]="Bool",e[e.Nat=-3]="Nat",e[e.Int=-4]="Int",e[e.Float32=-13]="Float32",e[e.Float64=-14]="Float64",e[e.Text=-15]="Text",e[e.Reserved=-16]="Reserved",e[e.Empty=-17]="Empty",e[e.Opt=-18]="Opt",e[e.Vector=-19]="Vector",e[e.Record=-20]="Record",e[e.Variant=-21]="Variant",e[e.Func=-22]="Func",e[e.Service=-23]="Service",e[e.Principal=-24]="Principal"})(et||(et={}));var po="DIDL",Af=new TextEncoder().encode(po),uc=400;function Gn(e,t,r){return e.map((n,s)=>r(n,t[s]))}var Si=class{constructor(){this._typs=[],this._idx=new Map,this._idxRefCount=new Map}has(t){return this._idx.has(t.name)}add(t,r){let n=this._typs.length;this._idx.set(t.name,n),this._idxRefCount.set(n,1),this._typs.push(r)}merge(t,r){let n=this._idx.get(t.name),s=this._idx.get(r);if(n===void 0)throw new Error(`Missing type index for ${t}`);if(s===void 0)throw new Error(`Missing type index for ${r}`);this._typs[n]=this._typs[s];let o=this._getIdxRefCount(n),i=this._getIdxRefCount(s);this._idxRefCount.set(n,o+i),this._idx.set(r,n),this._idxRefCount.set(s,0),this._compactFromEnd()}_getIdxRefCount(t){return this._idxRefCount.get(t)||0}_compactFromEnd(){for(;this._typs.length>0;){let t=this._typs.length-1;if(this._getIdxRefCount(t)>0)break;this._typs.pop(),this._idxRefCount.delete(t)}}encode(){let t=ot(this._typs.length),r=Q(...this._typs);return Q(t,r)}indexOf(t){if(!this._idx.has(t))throw new Error(`Missing type index for ${t}`);return pt(this._idx.get(t)||0)}},Ii=class{visitType(t,r){throw new Error("Not implemented")}visitPrimitive(t,r){return this.visitType(t,r)}visitEmpty(t,r){return this.visitPrimitive(t,r)}visitBool(t,r){return this.visitPrimitive(t,r)}visitNull(t,r){return this.visitPrimitive(t,r)}visitReserved(t,r){return this.visitPrimitive(t,r)}visitText(t,r){return this.visitPrimitive(t,r)}visitNumber(t,r){return this.visitPrimitive(t,r)}visitInt(t,r){return this.visitNumber(t,r)}visitNat(t,r){return this.visitNumber(t,r)}visitFloat(t,r){return this.visitPrimitive(t,r)}visitFixedInt(t,r){return this.visitNumber(t,r)}visitFixedNat(t,r){return this.visitNumber(t,r)}visitPrincipal(t,r){return this.visitPrimitive(t,r)}visitConstruct(t,r){return this.visitType(t,r)}visitVec(t,r,n){return this.visitConstruct(t,n)}visitOpt(t,r,n){return this.visitConstruct(t,n)}visitRecord(t,r,n){return this.visitConstruct(t,n)}visitTuple(t,r,n){let s=r.map((o,i)=>[`_${i}_`,o]);return this.visitRecord(t,s,n)}visitVariant(t,r,n){return this.visitConstruct(t,n)}visitRec(t,r,n){return this.visitConstruct(r,n)}visitFunc(t,r){return this.visitConstruct(t,r)}visitService(t,r){return this.visitConstruct(t,r)}},G;(function(e){e.EmptyClass="__IDL_EmptyClass__",e.UnknownClass="__IDL_UnknownClass__",e.BoolClass="__IDL_BoolClass__",e.NullClass="__IDL_NullClass__",e.ReservedClass="__IDL_ReservedClass__",e.TextClass="__IDL_TextClass__",e.IntClass="__IDL_IntClass__",e.NatClass="__IDL_NatClass__",e.FloatClass="__IDL_FloatClass__",e.FixedIntClass="__IDL_FixedIntClass__",e.FixedNatClass="__IDL_FixedNatClass__",e.VecClass="__IDL_VecClass__",e.OptClass="__IDL_OptClass__",e.RecordClass="__IDL_RecordClass__",e.TupleClass="__IDL_TupleClass__",e.VariantClass="__IDL_VariantClass__",e.RecClass="__IDL_RecClass__",e.PrincipalClass="__IDL_PrincipalClass__",e.FuncClass="__IDL_FuncClass__",e.ServiceClass="__IDL_ServiceClass__"})(G||(G={}));var an=class{display(){return this.name}valueToString(t){return lt(t)}buildTypeTable(t){t.has(this)||this._buildTypeTableImpl(t)}},$t=class extends an{checkType(t){if(this.name!==t.name)throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);return t}_buildTypeTableImpl(t){}},Ae=class extends an{checkType(t){if(t instanceof Wt){let r=t.getType();if(typeof r=="undefined")throw new kt("Type mismatch: cannot decode from uninitialized recursive type");return r}throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`)}encodeType(t){return t.indexOf(this.name)}},Zn=class extends $t{get typeName(){return G.EmptyClass}static[Symbol.hasInstance](t){return t.typeName===G.EmptyClass}accept(t,r){return t.visitEmpty(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Empty cannot appear as a function argument")}valueToString(){throw new Error("Empty cannot appear as a value")}encodeType(){return pt(et.Empty)}decodeValue(){throw new Error("Empty cannot appear as an output")}get name(){return"empty"}},yo=class extends an{get typeName(){return G.UnknownClass}static[Symbol.hasInstance](t){return t.typeName===G.UnknownClass}checkType(t){throw new Error("Method not implemented for unknown.")}accept(t,r){throw t.visitType(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){throw new Error("Unknown cannot appear as a function argument")}valueToString(){throw new Error("Unknown cannot appear as a value")}encodeType(){throw new Error("Unknown cannot be serialized")}decodeValue(t,r){let n=r.decodeValue(t,r);Object(n)!==n&&(n=Object(n));let s;return r instanceof Wt?s=()=>r.getType():s=()=>r,Object.defineProperty(n,"type",{value:s,writable:!0,enumerable:!1,configurable:!0}),n}_buildTypeTableImpl(){throw new Error("Unknown cannot be serialized")}get name(){return"Unknown"}},bo=class extends $t{get typeName(){return G.BoolClass}static[Symbol.hasInstance](t){return t.typeName===G.BoolClass}accept(t,r){return t.visitBool(this,r)}covariant(t){if(typeof t=="boolean")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return new Uint8Array([t?1:0])}encodeType(){return pt(et.Bool)}decodeValue(t,r){switch(this.checkType(r),or(t)){case 0:return!1;case 1:return!0;default:throw new Error("Boolean value out of range")}}get name(){return"bool"}},Nr=class extends $t{get typeName(){return G.NullClass}static[Symbol.hasInstance](t){return t.typeName===G.NullClass}accept(t,r){return t.visitNull(this,r)}covariant(t){if(t===null)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(et.Null)}decodeValue(t,r){return this.checkType(r),null}get name(){return"null"}},Ce=class extends $t{get typeName(){return G.ReservedClass}static[Symbol.hasInstance](t){return t.typeName===G.ReservedClass}accept(t,r){return t.visitReserved(this,r)}covariant(t){return!0}encodeValue(){return new Uint8Array(0)}encodeType(){return pt(et.Reserved)}decodeValue(t,r){return r.name!==this.name&&r.decodeValue(t,r),null}get name(){return"reserved"}},go=class extends $t{get typeName(){return G.TextClass}static[Symbol.hasInstance](t){return t.typeName===G.TextClass}accept(t,r){return t.visitText(this,r)}covariant(t){if(typeof t=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new TextEncoder().encode(t),n=ot(r.byteLength);return Q(n,r)}encodeType(){return pt(et.Text)}decodeValue(t,r){this.checkType(r);let n=ht(t),s=ir(t,Number(n));return new TextDecoder("utf8",{fatal:!0}).decode(s)}get name(){return"text"}valueToString(t){return`"${t}"`}},Yn=class extends $t{get typeName(){return G.IntClass}static[Symbol.hasInstance](t){return t.typeName===G.IntClass}accept(t,r){return t.visitInt(this,r)}covariant(t){if(typeof t=="bigint"||Number.isInteger(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return pt(t)}encodeType(){return pt(et.Int)}decodeValue(t,r){return this.checkType(r),Me(t)}get name(){return"int"}valueToString(t){return t.toString()}},zn=class extends $t{get typeName(){return G.NatClass}static[Symbol.hasInstance](t){return t.typeName===G.NatClass}accept(t,r){return t.visitNat(this,r)}covariant(t){if(typeof t=="bigint"&&t>=BigInt(0)||Number.isInteger(t)&&t>=0)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return ot(t)}encodeType(){return pt(et.Nat)}decodeValue(t,r){return this.checkType(r),ht(t)}get name(){return"nat"}valueToString(t){return t.toString()}},Xn=class extends $t{get typeName(){return G.FloatClass}static[Symbol.hasInstance](t){return t.typeName===G.FloatClass}constructor(t){if(super(),this._bits=t,t!==32&&t!==64)throw new Error("not a valid float type")}accept(t,r){return t.visitFloat(this,r)}covariant(t){if(typeof t=="number"||t instanceof Number)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=new ArrayBuffer(this._bits/8),n=new DataView(r);return this._bits===32?n.setFloat32(0,t,!0):n.setFloat64(0,t,!0),new Uint8Array(r)}encodeType(){let t=this._bits===32?et.Float32:et.Float64;return pt(t)}decodeValue(t,r){this.checkType(r);let n=ir(t,this._bits/8),s=oc(n);return this._bits===32?s.getFloat32(0,!0):s.getFloat64(0,!0)}get name(){return`float${this._bits}`}valueToString(t){return t.toString()}},$e=class extends $t{get typeName(){return G.FixedIntClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedIntClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedInt(this,r)}covariant(t){let r=ho(this._bits-1)*BigInt(-1),n=ho(this._bits-1)-BigInt(1);if(typeof t=="bigint"){if(t>=r&&t<=n)return!0}else if(Number.isInteger(t)){let s=BigInt(t);if(s>=r&&s<=n)return!0}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return vi(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return pt(-9-t)}decodeValue(t,r){this.checkType(r);let n=cc(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},Ie=class extends $t{get typeName(){return G.FixedNatClass}static[Symbol.hasInstance](t){return t.typeName===G.FixedNatClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedNat(this,r)}covariant(t){let r=ho(this._bits);if(typeof t=="bigint"&&t>=BigInt(0)){if(t<r)return!0}else if(Number.isInteger(t)&&t>=0&&BigInt(t)<r)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return ac(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return pt(-5-t)}decodeValue(t,r){this.checkType(r);let n=Bi(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`nat${this._bits}`}valueToString(t){return t.toString()}},cn=class e extends Ae{get typeName(){return G.VecClass}static[Symbol.hasInstance](t){return t.typeName===G.VecClass}constructor(t){super(),this._type=t,this._blobOptimization=!1,t instanceof Ie&&t._bits===8&&(this._blobOptimization=!0)}accept(t,r){return t.visitVec(this,this._type,r)}covariant(t){let r=this._type instanceof Ie?this._type._bits:this._type instanceof $e?this._type._bits:0;if(ArrayBuffer.isView(t)&&r==t.BYTES_PER_ELEMENT*8||Array.isArray(t)&&t.every((n,s)=>{try{return this._type.covariant(n)}catch(o){throw new Error(`Invalid ${this.display()} argument:
|
||
|
||
index ${s} -> ${o.message}`,{cause:o})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=ot(t.length);if(this._blobOptimization)return Q(r,new Uint8Array(t));if(ArrayBuffer.isView(t)){if(t instanceof Int16Array||t instanceof Uint16Array){let s=new DataView(new ArrayBuffer(t.length*2));for(let o=0;o<t.length;o++)t instanceof Int16Array?s.setInt16(o*2,t[o],!0):s.setUint16(o*2,t[o],!0);return Q(r,new Uint8Array(s.buffer))}if(t instanceof Int32Array||t instanceof Uint32Array){let s=new DataView(new ArrayBuffer(t.length*4));for(let o=0;o<t.length;o++)t instanceof Int32Array?s.setInt32(o*4,t[o],!0):s.setUint32(o*4,t[o],!0);return Q(r,new Uint8Array(s.buffer))}if(t instanceof BigInt64Array||t instanceof BigUint64Array){let s=new DataView(new ArrayBuffer(t.length*8));for(let o=0;o<t.length;o++)t instanceof BigInt64Array?s.setBigInt64(o*8,t[o],!0):s.setBigUint64(o*8,t[o],!0);return Q(r,new Uint8Array(s.buffer))}return Q(r,new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}let n=new he(new Uint8Array(r.byteLength+t.length),0);n.write(r);for(let s of t){let o=this._type.encodeValue(s);n.write(new Uint8Array(o))}return n.buffer}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=pt(et.Vector),n=this._type.encodeType(t);t.add(this,Q(r,n))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new kt(`Expected type '${this.display()}', but received non-vector type '${n.display()}'`);let s=Number(ht(t));if(this._type instanceof Ie){if(this._type._bits==8)return new Uint8Array(t.read(s));if(this._type._bits==16){let i=t.read(s*2);return new Uint16Array(i.buffer,i.byteOffset,s)}if(this._type._bits==32){let i=t.read(s*4);return new Uint32Array(i.buffer,i.byteOffset,s)}if(this._type._bits==64)return new BigUint64Array(t.read(s*8).buffer)}if(this._type instanceof $e){if(this._type._bits==8)return new Int8Array(t.read(s));if(this._type._bits==16){let i=t.read(s*2),a=new DataView(i.buffer,i.byteOffset,i.byteLength),c=new Int16Array(s);for(let f=0;f<s;f++)c[f]=a.getInt16(f*2,!0);return c}if(this._type._bits==32){let i=t.read(s*4),a=new DataView(i.buffer,i.byteOffset,i.byteLength),c=new Int32Array(s);for(let f=0;f<s;f++)c[f]=a.getInt32(f*4,!0);return c}if(this._type._bits==64){let i=t.read(s*8),a=new DataView(i.buffer,i.byteOffset,i.byteLength),c=new BigInt64Array(s);for(let f=0;f<s;f++)c[f]=a.getBigInt64(f*8,!0);return c}}let o=[];for(let i=0;i<s;i++)o.push(this._type.decodeValue(t,n._type));return o}get name(){return`vec ${this._type.name}`}display(){return`vec ${this._type.display()}`}valueToString(t){return`vec {${t.map(n=>this._type.valueToString(n)).join("; ")}}`}},ar=class e extends Ae{get typeName(){return G.OptClass}static[Symbol.hasInstance](t){return t.typeName===G.OptClass}constructor(t){super(),this._type=t}accept(t,r){return t.visitOpt(this,this._type,r)}covariant(t){try{if(Array.isArray(t)&&(t.length===0||t.length===1&&this._type.covariant(t[0])))return!0}catch(r){throw new Error(`Invalid ${this.display()} argument: ${lt(t)}
|
||
|
||
-> ${r.message}`,{cause:r})}throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){return t.length===0?new Uint8Array([0]):Q(new Uint8Array([1]),this._type.encodeValue(t[0]))}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=pt(et.Opt),n=this._type.encodeType(t);t.add(this,Q(r,n))}decodeValue(t,r){if(r instanceof Nr)return[];if(r instanceof Ce)return[];let n=r;if(r instanceof Wt){let s=r.getType();if(typeof s=="undefined")throw new kt("Type mismatch: cannot decode from uninitialized recursive type");n=s}if(n instanceof e)switch(or(t)){case 0:return[];case 1:{let s=t.save();try{return[this._type.decodeValue(t,n._type)]}catch(o){return t.restore(s),n._type.decodeValue(t,n._type),[]}}default:throw new kt(`Invalid option value: expected 0 (None) or 1 (Some) for type '${this.display()}'`)}else{if(this._type instanceof Nr||this._type instanceof e||this._type instanceof Ce)return n.decodeValue(t,n),[];{let s=t.save();try{return[this._type.decodeValue(t,r)]}catch(o){return t.restore(s),n.decodeValue(t,r),[]}}}}get name(){return`opt ${this._type.name}`}display(){return`opt ${this._type.display()}`}valueToString(t){return t.length===0?"null":`opt ${this._type.valueToString(t[0])}`}},Pr=class e extends Ae{get typeName(){return G.RecordClass}static[Symbol.hasInstance](t){return t.typeName===G.RecordClass||t.typeName===G.TupleClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitRecord(this,this._fields,r)}tryAsTuple(){let t=[];for(let r=0;r<this._fields.length;r++){let[n,s]=this._fields[r];if(n!==`_${r}_`)return null;t.push(s)}return t}covariant(t){if(typeof t=="object"&&this._fields.every(([r,n])=>{if(!t.hasOwnProperty(r))throw new Error(`Record is missing key "${r}".`);try{return n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument:
|
||
|
||
field ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=this._fields.map(([s])=>t[s]),n=Gn(this._fields,r,([,s],o)=>s.encodeValue(o));return Q(...n)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(et.Record),n=ot(this._fields.length),s=this._fields.map(([o,i])=>Q(ot(Rt(o)),i.encodeType(t)));t.add(this,Q(r,n,Q(...s)))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new kt(`Expected type '${this.display()}', but received non-record type '${n.display()}'`);let s={},o=0,i=0;for(;i<n._fields.length;){let[a,c]=n._fields[i];if(o>=this._fields.length){c.decodeValue(t,c),i++;continue}let[f,l]=this._fields[o],d=Rt(this._fields[o][0]),u=Rt(a);if(d===u)s[f]=l.decodeValue(t,c),o++,i++;else if(u>d)if(l instanceof ar||l instanceof Ce)s[f]=[],o++;else{let h=this._fields.map(([m])=>m).join(", "),p=n._fields.map(([m])=>m).join(", ");throw new kt(`Cannot find required field '${f}' in record, expected fields: [${h}], received fields: [${p}]`)}else c.decodeValue(t,c),i++}for(let[a,c]of this._fields.slice(o))if(c instanceof ar||c instanceof Ce)s[a]=[];else{let f=this._fields.map(([d])=>d).join(", "),l=n._fields.map(([d])=>d).join(", ");throw new kt(`Cannot find required field '${a}' in record, expected fields: [${f}], received fields: [${l}]`)}return s}get fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}get name(){return`record {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`record {${this._fields.map(([r,n])=>`${r}:${n.display()}`).join("; ")}}`}valueToString(t){let r=this._fields.map(([s])=>t[s]);return`record {${Gn(this._fields,r,([s,o],i)=>`${s}=${o.valueToString(i)}`).join("; ")}}`}},xo=class e extends Pr{get typeName(){return G.TupleClass}static[Symbol.hasInstance](t){return t.typeName===G.TupleClass}constructor(t){let r={};t.forEach((n,s)=>r[`_${s}_`]=n),super(r),this._components=t}accept(t,r){return t.visitTuple(this,this._components,r)}covariant(t){if(Array.isArray(t)&&t.length>=this._fields.length&&this._components.every((r,n)=>{try{return r.covariant(t[n])}catch(s){throw new Error(`Invalid ${this.display()} argument:
|
||
|
||
index ${n} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=Gn(this._components,t,(n,s)=>n.encodeValue(s));return Q(...r)}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new kt(`Expected type '${this.display()}', but received non-tuple type '${n.display()}'`);if(n._components.length<this._components.length)throw new kt(`Tuple mismatch: expected ${this._components.length} components, but received ${n._components.length}`);let s=[];for(let[o,i]of n._components.entries())o>=this._components.length?i.decodeValue(t,i):s.push(this._components[o].decodeValue(t,i));return s}display(){return`record {${this._components.map(r=>r.display()).join("; ")}}`}valueToString(t){return`record {${Gn(this._components,t,(n,s)=>n.valueToString(s)).join("; ")}}`}},un=class e extends Ae{get typeName(){return G.VariantClass}static[Symbol.hasInstance](t){return t.typeName===G.VariantClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>Rt(r[0])-Rt(n[0]))}accept(t,r){return t.visitVariant(this,this._fields,r)}covariant(t){if(typeof t=="object"&&Object.entries(t).length===1&&this._fields.every(([r,n])=>{try{return!t.hasOwnProperty(r)||n.covariant(t[r])}catch(s){throw new Error(`Invalid ${this.display()} argument:
|
||
|
||
variant ${r} -> ${s.message}`,{cause:s})}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){for(let r=0;r<this._fields.length;r++){let[n,s]=this._fields[r];if(t.hasOwnProperty(n)){let o=ot(r),i=s.encodeValue(t[n]);return Q(o,i)}}throw Error(`Variant has no data: ${t}`)}_buildTypeTableImpl(t){this._fields.forEach(([,o])=>{o.buildTypeTable(t)});let r=pt(et.Variant),n=ot(this._fields.length),s=this._fields.map(([o,i])=>Q(ot(Rt(o)),i.encodeType(t)));t.add(this,Q(r,n,...s))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new kt(`Expected type '${this.display()}', but received non-variant type '${n.display()}'`);let s=Number(ht(t));if(s>=n._fields.length)throw Error(`Invalid variant index: ${s}`);let[o,i]=n._fields[s];for(let[c,f]of this._fields)if(Rt(o)===Rt(c)){let l=f.decodeValue(t,i);return{[c]:l}}let a=this._fields.map(([c])=>c).join(", ");throw new kt(`Cannot find field hash ${o} in variant, expected fields: [${a}]`)}get name(){return`variant {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}display(){return`variant {${this._fields.map(([r,n])=>r+(n.name==="null"?"":`:${n.display()}`)).join("; ")}}`}valueToString(t){for(let[r,n]of this._fields)if(t.hasOwnProperty(r)){let s=n.valueToString(t[r]);return s==="null"?`variant {${r}}`:`variant {${r}=${s}}`}throw new Error(`Variant has no data: ${t}`)}get alternativesAsObject(){let t={};for(let[r,n]of this._fields)t[Rt(r)]=n;return t}},_o=class _o extends Ae{constructor(){super(...arguments),this._id=_o._counter++}get typeName(){return G.RecClass}static[Symbol.hasInstance](t){return t.typeName===G.RecClass}accept(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return t.visitRec(this,this._type,r)}fill(t){this._type=t}getType(){return this._type}covariant(t){if(this._type&&this._type.covariant(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.encodeValue(t)}_buildTypeTableImpl(t){if(!this._type)throw Error("Recursive type uninitialized.");t.add(this,new Uint8Array([])),this._type.buildTypeTable(t),t.merge(this,this._type.name)}decodeValue(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.decodeValue(t,r)}get name(){return`rec_${this._id}`}display(){if(!this._type)throw Error("Recursive type uninitialized.");return`\u03BC${this.name}.${this._type.name}`}valueToString(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.valueToString(t)}};_o._counter=0;var Wt=_o;function Ci(e){if(or(e)!==1)throw new Error("Cannot decode principal");let r=Number(ht(e));return $.fromUint8Array(new Uint8Array(ir(e,r)))}var wo=class extends $t{get typeName(){return G.PrincipalClass}static[Symbol.hasInstance](t){return t.typeName===G.PrincipalClass}accept(t,r){return t.visitPrincipal(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ot(r.byteLength);return Q(new Uint8Array([1]),n,r)}encodeType(){return pt(et.Principal)}decodeValue(t,r){return this.checkType(r),Ci(t)}get name(){return"principal"}valueToString(t){return`${this.name} "${t.toText()}"`}},Ur=class extends Ae{get typeName(){return G.FuncClass}static[Symbol.hasInstance](t){return t.typeName===G.FuncClass}static argsToString(t,r){if(t.length!==r.length)throw new Error("arity mismatch");return`(${t.map((n,s)=>n.valueToString(r[s])).join(", ")})`}constructor(t,r,n=[]){super(),this.argTypes=t,this.retTypes=r,this.annotations=n}accept(t,r){return t.visitFunc(this,r)}covariant(t){if(Array.isArray(t)&&t.length===2&&t[0]&&t[0]._isPrincipal&&typeof t[1]=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue([t,r]){let n=t.toUint8Array(),s=ot(n.byteLength),o=Q(new Uint8Array([1]),s,n),i=new TextEncoder().encode(r),a=ot(i.byteLength);return Q(new Uint8Array([1]),o,a,i)}_buildTypeTableImpl(t){this.argTypes.forEach(f=>f.buildTypeTable(t)),this.retTypes.forEach(f=>f.buildTypeTable(t));let r=pt(et.Func),n=ot(this.argTypes.length),s=Q(...this.argTypes.map(f=>f.encodeType(t))),o=ot(this.retTypes.length),i=Q(...this.retTypes.map(f=>f.encodeType(t))),a=ot(this.annotations.length),c=Q(...this.annotations.map(f=>this.encodeAnnotation(f)));t.add(this,Q(r,n,s,o,i,a,c))}decodeValue(t,r){var l;let n=r instanceof Wt&&(l=r.getType())!=null?l:r;if(!Oi(n,this))throw new Error(`Cannot decode function reference at type ${this.display()} from wire type ${n.display()}`);if(or(t)!==1)throw new Error("Cannot decode function reference");let o=Ci(t),i=Number(ht(t)),a=ir(t,i),f=new TextDecoder("utf8",{fatal:!0}).decode(a);return[o,f]}get name(){let t=this.argTypes.map(s=>s.name).join(", "),r=this.retTypes.map(s=>s.name).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) -> (${r})${n}`}valueToString([t,r]){return`func "${t.toText()}".${r}`}display(){let t=this.argTypes.map(s=>s.display()).join(", "),r=this.retTypes.map(s=>s.display()).join(", "),n=` ${this.annotations.join(" ")}`;return`(${t}) \u2192 (${r})${n}`}encodeAnnotation(t){if(t==="query")return new Uint8Array([1]);if(t==="oneway")return new Uint8Array([2]);if(t==="composite_query")return new Uint8Array([3]);throw new Error("Illegal function annotation")}},fn=class extends Ae{get typeName(){return G.ServiceClass}static[Symbol.hasInstance](t){return t.typeName===G.ServiceClass}constructor(t){super(),this._fields=Object.entries(t).sort((r,n)=>r[0]<n[0]?-1:r[0]>n[0]?1:0)}accept(t,r){return t.visitService(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${lt(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ot(r.length);return Q(new Uint8Array([1]),n,r)}_buildTypeTableImpl(t){this._fields.forEach(([o,i])=>i.buildTypeTable(t));let r=pt(et.Service),n=ot(this._fields.length),s=this._fields.map(([o,i])=>{let a=new TextEncoder().encode(o),c=ot(a.length);return Q(c,a,i.encodeType(t))});t.add(this,Q(r,n,...s))}decodeValue(t,r){var s;let n=r instanceof Wt&&(s=r.getType())!=null?s:r;if(!Oi(n,this))throw new Error(`Cannot decode service reference at type ${this.display()} from wire type ${n.display()}`);return Ci(t)}get name(){return`service {${this._fields.map(([r,n])=>`${r}:${n.name}`).join("; ")}}`}valueToString(t){return`service "${t.toText()}"`}fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[r]=n;return t}};function lt(e){let t=JSON.stringify(e,(r,n)=>typeof n=="bigint"?`BigInt(${n})`:n);return t&&t.length>uc?`${t.substring(0,uc-3)}...`:t}function Cf(e,t){if(t.length<e.length)throw Error("Wrong number of message arguments");let r=new Si;e.forEach(a=>a.buildTypeTable(r));let n=r.encode(),s=ot(t.length),o=Q(...e.map(a=>a.encodeType(r))),i=Q(...Gn(e,t,(a,c)=>{try{a.covariant(c)}catch(f){throw new Error(`${f.message}
|
||
|
||
`)}return a.encodeValue(c)}));return Q(Af,n,s,o,i)}function Of(e,t){let r=new he(t);if(t.byteLength<po.length)throw new Error("Message length smaller than magic number");let n=ir(r,po.length),s=new TextDecoder().decode(n);if(s!==po)throw new Error(`Wrong magic number: ${JSON.stringify(s)}`);function o(u){let h=[],p=Number(ht(u));for(let y=0;y<p;y++){let w=Number(Me(u));switch(w){case et.Opt:case et.Vector:{let b=Number(Me(u));h.push([w,b]);break}case et.Record:case et.Variant:{let b=[],v=Number(ht(u)),T;for(;v--;){let I=Number(ht(u));if(I>=Math.pow(2,32))throw new Error("field id out of 32-bit range");if(typeof T=="number"&&T>=I)throw new Error("field id collision or not sorted");T=I;let S=Number(Me(u));b.push([I,S])}h.push([w,b]);break}case et.Func:{let b=[],v=Number(ht(u));for(;v--;)b.push(Number(Me(u)));let T=[],I=Number(ht(u));for(;I--;)T.push(Number(Me(u)));let S=[],C=Number(ht(u));for(;C--;)switch(Number(ht(u))){case 1:{S.push("query");break}case 2:{S.push("oneway");break}case 3:{S.push("composite_query");break}default:throw new Error("unknown annotation")}h.push([w,[b,T,S]]);break}case et.Service:{let b=Number(ht(u)),v=[];for(;b--;){let T=Number(ht(u)),I=new TextDecoder().decode(ir(u,T)),S=Me(u);v.push([I,S])}h.push([w,v]);break}default:throw new Error(`Illegal op_code: ${w}`)}}let m=[],g=Number(ht(u));for(let y=0;y<g;y++)m.push(Number(Me(u)));return[h,m]}let[i,a]=o(r);if(a.length<e.length)throw new Error("Wrong number of return values");let c=i.map(u=>Pc());function f(u){if(u<-24)throw new Error("future value not supported");if(u<0)switch(u){case-1:return hc;case-2:return lc;case-3:return yc;case-4:return mc;case-5:return vc;case-6:return Bc;case-7:return Tc;case-8:return Sc;case-9:return xc;case-10:return wc;case-11:return Ec;case-12:return _c;case-13:return bc;case-14:return gc;case-15:return pc;case-16:return dc;case-17:return fc;case-24:return Ic;default:throw new Error(`Illegal op_code: ${u}`)}if(u>=i.length)throw new Error("type index out of range");return c[u]}function l(u){switch(u[0]){case et.Vector:{let h=f(u[1]);return Cc(h)}case et.Opt:{let h=f(u[1]);return Oc(h)}case et.Record:{let h={};for(let[g,y]of u[1]){let w=`_${g}_`;h[w]=f(y)}let p=Rc(h),m=p.tryAsTuple();return Array.isArray(m)?Ac(...m):p}case et.Variant:{let h={};for(let[p,m]of u[1]){let g=`_${p}_`;h[g]=f(m)}return Nc(h)}case et.Func:{let[h,p,m]=u[1];return Uc(h.map(g=>f(g)),p.map(g=>f(g)),m)}case et.Service:{let h={},p=u[1];for(let[m,g]of p){let y=f(g);if(y instanceof Wt&&(y=y.getType()),!(y instanceof Ur))throw new Error("Illegal service definition: services can only contain functions");h[m]=y}return qc(h)}default:throw new Error(`Illegal op_code: ${u[0]}`)}}i.forEach((u,h)=>{if(u[0]===et.Func){let p=l(u);c[h].fill(p)}}),i.forEach((u,h)=>{if(u[0]!==et.Func){let p=l(u);c[h].fill(p)}}),Ai();let d=a.map(u=>f(u));try{let u=e.map((h,p)=>h.decodeValue(r,d[p]));for(let h=e.length;h<d.length;h++)d[h].decodeValue(r,d[h]);if(r.byteLength>0)throw new Error("decode: Left-over bytes");return u}finally{Ai()}}var fc=new Zn,dc=new Ce,Rf=new yo,lc=new bo,hc=new Nr,pc=new go,mc=new Yn,yc=new zn,bc=new Xn(32),gc=new Xn(64),xc=new $e(8),wc=new $e(16),Ec=new $e(32),_c=new $e(64),vc=new Ie(8),Bc=new Ie(16),Tc=new Ie(32),Sc=new Ie(64),Ic=new wo;function Ac(...e){return new xo(e)}function Cc(e){return new cn(e)}function Oc(e){return new ar(e)}function Rc(e){return new Pr(e)}function Nc(e){return new un(e)}function Pc(){return new Wt}function Uc(e,t,r=[]){return new Ur(e,t,r)}function qc(e){return new fn(e)}var Eo=class e{constructor(t=new Map){this.rels=t}copy(){let t=new Map;for(let[r,n]of this.rels.entries()){let s=new Map(n);t.set(r,s)}return new e(t)}known(t,r){var n;return(n=this.rels.get(t.name))==null?void 0:n.get(r.name)}addNegative(t,r){this.addNames(t.name,r.name,!1)}add(t,r){this.addNames(t.name,r.name,!0)}display(){let t="";for(let[r,n]of this.rels)for(let[s,o]of n)t+=`${r} ${o?":<":"!<:"} ${s}
|
||
`;return t}addNames(t,r,n){let s=this.rels.get(t);if(s==null){let o=new Map;o.set(r,n),this.rels.set(t,o)}else s.set(r,n)}},mo=new Eo;function Ai(){mo=new Eo}function Nf(e,t){let r=new Set(e.annotations),n=new Set(t.annotations);if(r.size!==n.size)return!1;for(let s of r)if(!n.has(s))return!1;return!0}function Ti(e){return e instanceof ar||e instanceof Nr||e instanceof Ce}function Oi(e,t){let r=mo.copy(),n=ke(r,e,t);return n?mo.add(e,t):mo.addNegative(e,t),n}function ke(e,t,r){if(t.name===r.name)return!0;let n=e.known(t,r);if(n!==void 0)return n;if(e.add(t,r),r instanceof Ce||t instanceof Zn||t instanceof zn&&r instanceof Yn)return!0;if(t instanceof cn&&r instanceof cn)return ke(e,t._type,r._type);if(r instanceof ar)return!0;if(t instanceof Pr&&r instanceof Pr){let s=t.fieldsAsObject;for(let[o,i]of r._fields){let a=s[Rt(o)];if(a){if(!ke(e,a,i))return!1}else if(!Ti(i))return!1}return!0}if(t instanceof Ur&&r instanceof Ur){if(!Nf(t,r))return!1;for(let s=0;s<t.argTypes.length;s++){let o=t.argTypes[s];if(s<r.argTypes.length){if(!ke(e,r.argTypes[s],o))return!1}else if(!Ti(o))return!1}for(let s=0;s<r.retTypes.length;s++){let o=r.retTypes[s];if(s<t.retTypes.length){if(!ke(e,t.retTypes[s],o))return!1}else if(!Ti(o))return!1}return!0}if(t instanceof un&&r instanceof un){let s=r.alternativesAsObject;for(let[o,i]of t._fields){let a=s[Rt(o)];if(!a||!ke(e,i,a))return!1}return!0}if(t instanceof fn&&r instanceof fn){let s=t.fieldsAsObject();for(let[o,i]of r._fields){let a=s[o];if(!a||!ke(e,a,i))return!1}return!0}return t instanceof Wt?ke(e,t.getType(),r):r instanceof Wt?ke(e,t,r.getType()):!1}function dn(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?dn(e.buffer):new Uint8Array(e)}function qr(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Ri(e){if(typeof e=="string")return Dc(e);if(typeof e=="number")return Tt(ot(e));if(e instanceof Uint8Array||ArrayBuffer.isView(e))return Tt(dn(e));if(Array.isArray(e)){let t=e.map(Ri);return Tt(K(...t))}if(e&&typeof e=="object"&&e._isPrincipal)return Tt(e.toUint8Array());if(typeof e=="object"&&e!==null&&typeof e.toHash=="function")return Ri(e.toHash());if(typeof e=="object")return Wn(e);if(typeof e=="bigint")return Tt(ot(e));throw J.fromCode(new ro(e))}var Dc=e=>{let t=new TextEncoder().encode(e);return Tt(t)};function ln(e){return Wn(e)}function Wn(e){let n=Object.entries(e).filter(([,i])=>i!==void 0).map(([i,a])=>{let c=Dc(i),f=Ri(a);return[c,f]}).sort(([i],[a])=>on(i,a)),s=K(...n.map(i=>K(...i)));return Tt(s)}var Fc=new TextEncoder().encode("\ric-state-root"),Mc=new TextEncoder().encode(`
|
||
ic-request`),kc=new TextEncoder().encode("\vic-response"),Jh=new TextEncoder().encode("ic-request-auth-delegation");var vo=class{getPrincipal(){return this._principal||(this._principal=$.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()))),this._principal}async transformRequest(t){let{body:r,...n}=t,s=ln(r);return{...n,body:{content:r,sender_pubkey:this.getPublicKey().toDer(),sender_sig:await this.sign(K(Mc,s))}}}},hn=class{getPrincipal(){return $.anonymous()}async transformRequest(t){return{...t,body:{content:t.body}}}};var Le=class extends Error{constructor(t){super(t),this.name="DecodingError"}},Lc=55799,Vc=Symbol("CBOR_STOP_CODE"),ye=(e=>(e[e.False=20]="False",e[e.True=21]="True",e[e.Null=22]="Null",e[e.Undefined=23]="Undefined",e[e.Break=31]="Break",e))(ye||{}),bt=(e=>(e[e.UnsignedInteger=0]="UnsignedInteger",e[e.NegativeInteger=1]="NegativeInteger",e[e.ByteString=2]="ByteString",e[e.TextString=3]="TextString",e[e.Array=4]="Array",e[e.Map=5]="Map",e[e.Tag=6]="Tag",e[e.Simple=7]="Simple",e))(bt||{}),Pf=23,Uf=255,qf=65535,Df=4294967295,Ff=BigInt("0xffffffffffffffff"),me=(e=>(e[e.Value=23]="Value",e[e.OneByte=24]="OneByte",e[e.TwoBytes=25]="TwoBytes",e[e.FourBytes=26]="FourBytes",e[e.EightBytes=27]="EightBytes",e[e.Indefinite=31]="Indefinite",e))(me||{}),pn=!1;function Mf(e){return e==null}function jc(e,t){let r=new Uint8Array(t);return r.set(e),r}var kf=new TextDecoder;function $f(e){return(e&224)>>5}function Lf(e){return e&31}var ts=new Uint8Array,Jn,be=0;function Hc(e,t){var n;ts=e,be=0;let r=Dr(t);return(n=t==null?void 0:t(r))!=null?n:r}function Dr(e){let[t,r]=Bo();switch(t){case bt.UnsignedInteger:return mn(r);case bt.NegativeInteger:return Kf(r);case bt.ByteString:return Kc(r);case bt.TextString:return Pi(r);case bt.Array:return Vf(r,e);case bt.Map:return Hf(r,e);case bt.Tag:return Gf(r,e);case bt.Simple:return jf(r)}throw new Le(`Unsupported major type: ${t}`)}function Bo(){let e=ts.at(be);if(Mf(e))throw new Le("Provided CBOR data is empty");let t=$f(e),r=Lf(e);return be++,[t,r]}function Vf(e,t){var s,o;let r=mn(e);if(r===1/0){let i=[],a=Dr(t);for(;a!==Vc;)i.push((s=t==null?void 0:t(a))!=null?s:a),a=Dr(t);return i}let n=new Array(r);for(let i=0;i<r;i++){let a=Dr(t);n[i]=(o=t==null?void 0:t(a))!=null?o:a}return n}function jf(e){switch(e){case ye.False:return!1;case ye.True:return!0;case ye.Null:return null;case ye.Undefined:return;case ye.Break:return Vc}throw new Le(`Unrecognized simple type: ${e.toString(2)}`)}function Hf(e,t){var s,o;let r=mn(e),n={};if(r===1/0){let[i,a]=Bo();for(;i!==bt.Simple&&a!==ye.Break;){let c=Pi(a),f=Dr(t);n[c]=(s=t==null?void 0:t(f,c))!=null?s:f,[i,a]=Bo()}return n}for(let i=0;i<r;i++){let[a,c]=Bo();if(a!==bt.TextString)throw new Le("Map keys must be text strings");let f=Pi(c),l=Dr(t);n[f]=(o=t==null?void 0:t(l,f))!=null?o:l}return n}function mn(e){if(e<=me.Value)return e;switch(Jn=new DataView(ts.buffer,ts.byteOffset+be),e){case me.OneByte:return be++,Jn.getUint8(0);case me.TwoBytes:return be+=2,Jn.getUint16(0,pn);case me.FourBytes:return be+=4,Jn.getUint32(0,pn);case me.EightBytes:return be+=8,Jn.getBigUint64(0,pn);case me.Indefinite:return 1/0;default:throw new Le(`Unsupported integer info: ${e.toString(2)}`)}}function Kf(e){let t=mn(e);return typeof t=="number"?-1-t:-BigInt(1)-t}function Kc(e){let t=mn(e);if(t>Number.MAX_SAFE_INTEGER)throw new Le("Byte length is too large");let r=Number(t);return be+=r,ts.slice(be-r,be)}function Pi(e){let t=Kc(e);return kf.decode(t)}function Gf(e,t){let r=mn(e);if(r===Lc)return Dr(t);throw new Le(`Unsupported tag: ${r}.`)}var es=class extends Error{constructor(t){super(t),this.name="SerializationError"}},Zf=2*1024,Yf=100,zf=new TextEncoder;function Qn(e){return e<<5}var Gt=new Uint8Array(Zf),pe=new DataView(Gt.buffer),yt=0,Ni=[];function Gc(e,t){var n;yt=0;let r=(n=t==null?void 0:t(e))!=null?n:e;return nd(Lc,r,t),Gt.slice(0,yt)}function Ui(e,t){if(yt>Gt.length-Yf&&(Gt=jc(Gt,Gt.length*2),pe=new DataView(Gt.buffer)),e===!1||e===!0||e===null||e===void 0){Jf(e);return}if(typeof e=="number"||typeof e=="bigint"){rd(e);return}if(typeof e=="string"){zc(e);return}if(e instanceof Uint8Array){$c(e);return}if(e instanceof ArrayBuffer){$c(new Uint8Array(e));return}if(Array.isArray(e)){Xf(e,t);return}if(typeof e=="object"){Wf(e,t);return}throw new es(`Unsupported type: ${typeof e}`)}function Xf(e,t){yn(bt.Array,e.length),e.forEach((r,n)=>{var s;Ui((s=t==null?void 0:t(r,n.toString()))!=null?s:r,t)})}function Wf(e,t){Ni=Object.entries(e),yn(bt.Map,Ni.length),Ni.forEach(([r,n])=>{var s;zc(r),Ui((s=t==null?void 0:t(n,r))!=null?s:n,t)})}function yn(e,t){if(t<=Pf){pe.setUint8(yt++,Qn(e)|Number(t));return}if(t<=Uf){pe.setUint8(yt++,Qn(e)|me.OneByte),pe.setUint8(yt,Number(t)),yt+=1;return}if(t<=qf){pe.setUint8(yt++,Qn(e)|me.TwoBytes),pe.setUint16(yt,Number(t),pn),yt+=2;return}if(t<=Df){pe.setUint8(yt++,Qn(e)|me.FourBytes),pe.setUint32(yt,Number(t),pn),yt+=4;return}if(t<=Ff){pe.setUint8(yt++,Qn(e)|me.EightBytes),pe.setBigUint64(yt,BigInt(t),pn),yt+=8;return}throw new es(`Value too large to encode: ${t}`)}function Jf(e){yn(bt.Simple,Qf(e))}function Qf(e){if(e===!1)return ye.False;if(e===!0)return ye.True;if(e===null)return ye.Null;if(e===void 0)return ye.Undefined;throw new es(`Unrecognized simple value: ${e.toString()}`)}function Zc(e,t){yn(e,t.length),yt>Gt.length-t.length&&(Gt=jc(Gt,Gt.length+t.length),pe=new DataView(Gt.buffer)),Gt.set(t,yt),yt+=t.length}function Yc(e,t){yn(e,t)}function td(e){Yc(bt.UnsignedInteger,e)}function ed(e){Yc(bt.NegativeInteger,typeof e=="bigint"?-BigInt(1)-e:-1-e)}function rd(e){e>=0?td(e):ed(e)}function zc(e){Zc(bt.TextString,zf.encode(e))}function $c(e){Zc(bt.ByteString,e)}function nd(e,t,r){yn(bt.Tag,e),Ui(t,r)}var rs="__expiry__",qi=BigInt(1e3),od=BigInt(1e6),id=BigInt(60),Di=id*qi,ad=BigInt(1)*Di;function cd(e){return e/qi*qi}function ud(e){return e/Di*Di}var Fr=class e{constructor(t){this.__expiry__=t,this._isExpiry=!0}static fromDeltaInMilliseconds(t,r=0){let n=BigInt(Date.now())+BigInt(r),s=n+BigInt(t),o=ud(s),i;return o>=n+ad?i=o:i=cd(s),new e(i*od)}toBigInt(){return this.__expiry__}toHash(){return ot(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[rs]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[rs])try{let n=BigInt(r[rs]);return new e(n)}catch(n){throw new J(new Hn(`Not a valid BigInt: ${n}`))}throw new J(new Hn(`The input does not contain the key ${rs}`))}static isExpiry(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isExpiry"in t&&t._isExpiry===!0&&"__expiry__"in t&&typeof t.__expiry__=="bigint"}};function fd(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function To(e){try{return Gc(e,t=>$.isPrincipal(t)?t.toUint8Array():Fr.isExpiry(t)?t.toBigInt():fd(t)?t.toCborValue():t)}catch(t){throw J.fromCode(new Xs(t,e))}}function Lt(e){try{return Hc(e)}catch(t){throw J.fromCode(new zs(t,e))}}var ns=()=>{if(typeof window!="undefined"&&window.crypto&&window.crypto.getRandomValues){let e=new Uint32Array(1);return window.crypto.getRandomValues(e),e[0]}if(typeof crypto!="undefined"&&crypto.getRandomValues){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return typeof crypto!="undefined"&&crypto.randomInt?crypto.randomInt(0,4294967295):Math.floor(Math.random()*4294967295)};var Ve;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(Ve||(Ve={}));var Io;(function(e){e.Call="call"})(Io||(Io={}));var Mr;(function(e){e.Query="query",e.ReadState="read_state"})(Mr||(Mr={}));var Zt;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})(Zt||(Zt={}));function ss(){let e=new ArrayBuffer(16),t=new DataView(e),r=ns(),n=ns(),s=ns(),o=ns();return t.setUint32(0,r),t.setUint32(4,n),t.setUint32(8,s),t.setUint32(12,o),Object.assign(new Uint8Array(e),{__nonce__:void 0})}function Fi(e=ss){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===Ve.Call&&(t.body.nonce=e())}}function Mi(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var $i=BigInt(0),Ao=BigInt(1);function kr(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}"`;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function ur(e,t,r=""){let n=Be(e),s=e==null?void 0:e.length,o=t!==void 0;if(!n||o&&s!==t){let i=r&&`"${r}" `,a=o?` of length ${t}`:"",c=n?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Xc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?$i:BigInt("0x"+e)}function Vt(e){return Xc(V(e))}function je(e){return dt(e),Xc(V(Uint8Array.from(e).reverse()))}function gt(e,t){return Bt(e.toString(16).padStart(t*2,"0"))}function Li(e,t){return gt(e,t).reverse()}function ut(e,t,r){let n;if(typeof t=="string")try{n=Bt(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(Be(t))n=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");let s=n.length;if(typeof r=="number"&&s!==r)throw new Error(e+" of length "+r+" expected, got "+s);return n}function Wc(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function Vi(e){return Uint8Array.from(e)}var ki=e=>typeof e=="bigint"&&$i<=e;function ji(e,t,r){return ki(e)&&ki(t)&&ki(r)&&t<=e&&e<r}function Co(e,t,r,n){if(!ji(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function He(e){let t;for(t=0;e>$i;e>>=Ao,t+=1);return t}function Jc(e,t){return e>>BigInt(t)&Ao}var ge=e=>(Ao<<BigInt(e))-Ao;function Qc(e){return typeof e=="function"&&Number.isSafeInteger(e.outputLen)}function Ke(e,t,r={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function n(s,o,i){let a=e[s];if(i&&a===void 0)return;let c=typeof a;if(c!==o||a===null)throw new Error(`param "${s}" is invalid: expected ${o}, got ${c}`)}Object.entries(t).forEach(([s,o])=>n(s,o,!1)),Object.entries(r).forEach(([s,o])=>n(s,o,!0))}var bn=()=>{throw new Error("not implemented")};function fr(e){let t=new WeakMap;return(r,...n)=>{let s=t.get(r);if(s!==void 0)return s;let o=e(r,...n);return t.set(r,o),o}}var Nt=BigInt(0),xt=BigInt(1),$r=BigInt(2),eu=BigInt(3),ru=BigInt(4),nu=BigInt(5),dd=BigInt(7),su=BigInt(8),ld=BigInt(9),ou=BigInt(16);function at(e,t){let r=e%t;return r>=Nt?r:t+r}function xe(e,t,r){let n=e;for(;t-- >Nt;)n*=n,n%=r;return n}function tu(e,t){if(e===Nt)throw new Error("invert: expected non-zero number");if(t<=Nt)throw new Error("invert: expected positive modulus, got "+t);let r=at(e,t),n=t,s=Nt,o=xt,i=xt,a=Nt;for(;r!==Nt;){let f=n/r,l=n%r,d=s-i*f,u=o-a*f;n=r,r=l,s=i,o=a,i=d,a=u}if(n!==xt)throw new Error("invert: does not exist");return at(s,t)}function Hi(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function iu(e,t){let r=(e.ORDER+xt)/ru,n=e.pow(t,r);return Hi(e,n,t),n}function hd(e,t){let r=(e.ORDER-nu)/su,n=e.mul(t,$r),s=e.pow(n,r),o=e.mul(t,s),i=e.mul(e.mul(o,$r),s),a=e.mul(o,e.sub(i,e.ONE));return Hi(e,a,t),a}function pd(e){let t=Pt(e),r=au(e),n=r(t,t.neg(t.ONE)),s=r(t,n),o=r(t,t.neg(n)),i=(e+dd)/ou;return(a,c)=>{let f=a.pow(c,i),l=a.mul(f,n),d=a.mul(f,s),u=a.mul(f,o),h=a.eql(a.sqr(l),c),p=a.eql(a.sqr(d),c);f=a.cmov(f,l,h),l=a.cmov(u,d,p);let m=a.eql(a.sqr(l),c),g=a.cmov(f,l,m);return Hi(a,g,c),g}}function au(e){if(e<eu)throw new Error("sqrt is not defined for small field");let t=e-xt,r=0;for(;t%$r===Nt;)t/=$r,r++;let n=$r,s=Pt(e);for(;os(s,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return iu;let o=s.pow(n,t),i=(t+xt)/$r;return function(c,f){if(c.is0(f))return f;if(os(c,f)!==1)throw new Error("Cannot find square root");let l=r,d=c.mul(c.ONE,o),u=c.pow(f,t),h=c.pow(f,i);for(;!c.eql(u,c.ONE);){if(c.is0(u))return c.ZERO;let p=1,m=c.sqr(u);for(;!c.eql(m,c.ONE);)if(p++,m=c.sqr(m),p===l)throw new Error("Cannot find square root");let g=xt<<BigInt(l-p-1),y=c.pow(d,g);l=p,d=c.sqr(y),u=c.mul(u,d),h=c.mul(h,y)}return h}}function md(e){return e%ru===eu?iu:e%su===nu?hd:e%ou===ld?pd(e):au(e)}var Ge=(e,t)=>(at(e,t)&xt)===xt,yd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Oo(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=yd.reduce((n,s)=>(n[s]="function",n),t);return Ke(e,r),e}function is(e,t,r){if(r<Nt)throw new Error("invalid exponent, negatives unsupported");if(r===Nt)return e.ONE;if(r===xt)return t;let n=e.ONE,s=t;for(;r>Nt;)r&xt&&(n=e.mul(n,s)),s=e.sqr(s),r>>=xt;return n}function Jt(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(n[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(n[c]=e.mul(i,n[c]),e.mul(i,a)),o),n}function os(e,t){let r=(e.ORDER-xt)/$r,n=e.pow(t,r),s=e.eql(n,e.ONE),o=e.eql(n,e.ZERO),i=e.eql(n,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function Ki(e,t){t!==void 0&&pi(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Pt(e,t,r=!1,n={}){if(e<=Nt)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");let u=t;u.BITS&&(s=u.BITS),u.sqrt&&(o=u.sqrt),typeof u.isLE=="boolean"&&(r=u.isLE),typeof u.modFromBytes=="boolean"&&(i=u.modFromBytes),a=u.allowedLengths}else typeof t=="number"&&(s=t),n.sqrt&&(o=n.sqrt);let{nBitLength:c,nByteLength:f}=Ki(e,s);if(f>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let l,d=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:f,MASK:ge(c),ZERO:Nt,ONE:xt,allowedLengths:a,create:u=>at(u,e),isValid:u=>{if(typeof u!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof u);return Nt<=u&&u<e},is0:u=>u===Nt,isValidNot0:u=>!d.is0(u)&&d.isValid(u),isOdd:u=>(u&xt)===xt,neg:u=>at(-u,e),eql:(u,h)=>u===h,sqr:u=>at(u*u,e),add:(u,h)=>at(u+h,e),sub:(u,h)=>at(u-h,e),mul:(u,h)=>at(u*h,e),pow:(u,h)=>is(d,u,h),div:(u,h)=>at(u*tu(h,e),e),sqrN:u=>u*u,addN:(u,h)=>u+h,subN:(u,h)=>u-h,mulN:(u,h)=>u*h,inv:u=>tu(u,e),sqrt:o||(u=>(l||(l=md(e)),l(d,u))),toBytes:u=>r?Li(u,f):gt(u,f),fromBytes:(u,h=!0)=>{if(a){if(!a.includes(u.length)||u.length>f)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+u.length);let m=new Uint8Array(f);m.set(u,r?0:m.length-u.length),u=m}if(u.length!==f)throw new Error("Field.fromBytes: expected "+f+" bytes, got "+u.length);let p=r?je(u):Vt(u);if(i&&(p=at(p,e)),!h&&!d.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:u=>Jt(d,u),cmov:(u,h,p)=>p?h:u});return Object.freeze(d)}function cu(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Ro(e){let t=cu(e);return t+Math.ceil(t/2)}function Gi(e,t,r=!1){let n=e.length,s=cu(t),o=Ro(t);if(n<16||n<o||n>1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);let i=r?je(e):Vt(e),a=at(i,t-xt)+xt;return r?Li(a,s):gt(a,s)}var gn=BigInt(0),Lr=BigInt(1);function as(e,t){let r=t.negate();return e?r:t}function Qt(e,t){let r=Jt(e.Fp,t.map(n=>n.Z));return t.map((n,s)=>e.fromAffine(n.toAffine(r[s])))}function lu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Zi(e,t){lu(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),s=2**e,o=ge(e),i=BigInt(e);return{windows:r,windowSize:n,mask:o,maxNumber:s,shiftBy:i}}function uu(e,t,r){let{windowSize:n,mask:s,maxNumber:o,shiftBy:i}=r,a=Number(e&s),c=e>>i;a>n&&(a-=o,c+=Lr);let f=t*n,l=f+Math.abs(a)-1,d=a===0,u=a<0,h=t%2!==0;return{nextN:c,offset:l,isZero:d,isNeg:u,isNegF:h,offsetF:f}}function gd(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function xd(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}var Yi=new WeakMap,hu=new WeakMap;function zi(e){return hu.get(e)||1}function fu(e){if(e!==gn)throw new Error("invalid wNAF")}var xn=class{constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let s=t;for(;r>gn;)r&Lr&&(n=n.add(s)),s=s.double(),r>>=Lr;return n}precomputeWindow(t,r){let{windows:n,windowSize:s}=Zi(r,this.bits),o=[],i=t,a=i;for(let c=0;c<n;c++){a=i,o.push(a);for(let f=1;f<s;f++)a=a.add(i),o.push(a);i=a.double()}return o}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let s=this.ZERO,o=this.BASE,i=Zi(t,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:l,isNeg:d,isNegF:u,offsetF:h}=uu(n,a,i);n=c,l?o=o.add(as(u,r[h])):s=s.add(as(d,r[f]))}return fu(n),{p:s,f:o}}wNAFUnsafe(t,r,n,s=this.ZERO){let o=Zi(t,this.bits);for(let i=0;i<o.windows&&n!==gn;i++){let{nextN:a,offset:c,isZero:f,isNeg:l}=uu(n,i,o);if(n=a,!f){let d=r[c];s=s.add(l?d.negate():d)}}return fu(n),s}getPrecomputes(t,r,n){let s=Yi.get(r);return s||(s=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(s=n(s)),Yi.set(r,s))),s}cached(t,r,n){let s=zi(t);return this.wNAF(s,this.getPrecomputes(s,t,n),r)}unsafe(t,r,n,s){let o=zi(t);return o===1?this._unsafeLadder(t,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,t,n),r,s)}createCache(t,r){lu(r,this.bits),hu.set(t,r),Yi.delete(t)}hasCache(t){return zi(t)!==1}};function pu(e,t,r,n){let s=t,o=e.ZERO,i=e.ZERO;for(;r>gn||n>gn;)r&Lr&&(o=o.add(s)),n&Lr&&(i=i.add(s)),s=s.double(),r>>=Lr,n>>=Lr;return{p1:o,p2:i}}function wn(e,t,r,n){gd(r,e),xd(n,t);let s=r.length,o=n.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");let i=e.ZERO,a=He(BigInt(s)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let f=ge(c),l=new Array(Number(f)+1).fill(i),d=Math.floor((t.BITS-1)/c)*c,u=i;for(let h=d;h>=0;h-=c){l.fill(i);for(let m=0;m<o;m++){let g=n[m],y=Number(g>>BigInt(h)&f);l[y]=l[y].add(r[m])}let p=i;for(let m=l.length-1,g=i;m>0;m--)g=g.add(l[m]),p=p.add(g);if(u=u.add(p),h!==0)for(let m=0;m<c;m++)u=u.double()}return u}function du(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Oo(t),t}else return Pt(e,{isLE:r})}function No(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let c of["p","n","h"]){let f=t[c];if(!(typeof f=="bigint"&&f>gn))throw new Error(`CURVE.${c} must be positive bigint`)}let s=du(t.p,r.Fp,n),o=du(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}var wd=Vt;function dr(e,t){if(cs(e),cs(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Ed(e,t){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return r}function cs(e){if(!Number.isSafeInteger(e))throw new Error("number expected")}function mu(e){if(!Be(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or string");return typeof e=="string"?z(e):e}function _d(e,t,r,n){dt(e),cs(r),t=mu(t),t.length>255&&(t=n(K(z("H2C-OVERSIZE-DST-"),t)));let{outputLen:s,blockLen:o}=n,i=Math.ceil(r/s);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=K(t,dr(t.length,1)),c=dr(0,o),f=dr(r,2),l=new Array(i),d=n(K(c,e,f,dr(0,1),a));l[0]=n(K(d,dr(1,1),a));for(let h=1;h<=i;h++){let p=[Ed(d,l[h-1]),dr(h+1,1),a];l[h]=n(K(...p))}return K(...l).slice(0,r)}function vd(e,t,r,n,s){if(dt(e),cs(r),t=mu(t),t.length>255){let o=Math.ceil(2*n/8);t=s.create({dkLen:o}).update(z("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:r}).update(e).update(dr(r,2)).update(t).update(dr(t.length,1)).digest()}function Xi(e,t,r){Ke(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:s,m:o,hash:i,expand:a,DST:c}=r;if(!Qc(r.hash))throw new Error("expected valid hash");dt(e),cs(t);let f=n.toString(2).length,l=Math.ceil((f+s)/8),d=t*o*l,u;if(a==="xmd")u=_d(e,c,d,i);else if(a==="xof")u=vd(e,c,d,s,i);else if(a==="_internal_pass")u=e;else throw new Error('expand must be "xmd" or "xof"');let h=new Array(t);for(let p=0;p<t;p++){let m=new Array(o);for(let g=0;g<o;g++){let y=l*(g+p*o),w=u.subarray(y,y+l);m[g]=at(wd(w),n)}h[p]=m}return h}function Wi(e,t){let r=t.map(n=>Array.from(n).reverse());return(n,s)=>{let[o,i,a,c]=r.map(d=>d.reduce((u,h)=>e.add(e.mul(u,n),h))),[f,l]=Jt(e,[i,c],!0);return n=e.mul(o,f),s=e.mul(s,e.mul(a,l)),{x:n,y:s}}}var Bd=z("HashToScalar-");function Ji(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");function n(o){return e.fromAffine(t(o))}function s(o){let i=o.clearCofactor();return i.equals(e.ZERO)?e.ZERO:(i.assertValidity(),i)}return{defaults:r,hashToCurve(o,i){let a=Object.assign({},r,i),c=Xi(o,2,a),f=n(c[0]),l=n(c[1]);return s(f.add(l))},encodeToCurve(o,i){let a=r.encodeDST?{DST:r.encodeDST}:{},c=Object.assign({},r,a,i),f=Xi(o,1,c),l=n(f[0]);return s(l)},mapToCurve(o){if(!Array.isArray(o))throw new Error("expected array of bigints");for(let i of o)if(typeof i!="bigint")throw new Error("expected array of bigints");return s(n(o))},hashToScalar(o,i){let a=e.Fn.ORDER,c=Object.assign({},r,{p:a,m:1,DST:Bd},i);return Xi(o,1,c)[0][0]}}}var yu=(e,t)=>(e+(e>=0?t:-t)/Ze)/t;function Td(e,t,r){let[[n,s],[o,i]]=t,a=yu(i*e,r),c=yu(-s*e,r),f=e-a*n-c*o,l=-a*s-c*i,d=f<Vr,u=l<Vr;d&&(f=-f),u&&(l=-l);let h=ge(Math.ceil(He(r)/2))+Ut;if(f<Vr||f>=h||l<Vr||l>=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:f,k2neg:u,k2:l}}var Vr=BigInt(0),Ut=BigInt(1),Ze=BigInt(2),En=BigInt(3),Qi=BigInt(4);function us(e,t){let{BYTES:r}=e,n;if(typeof t=="bigint")n=t;else{let s=ut("private key",t);try{n=e.fromBytes(s)}catch(o){throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw new Error("invalid private key: out of range [1..N-1]");return n}function Sd(e,t={}){let r=No("weierstrass",e,t),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i,n:a}=o;Ke(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=t;if(c&&(!n.is0(o.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let f=Cd(n,s);function l(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function d(R,E,B){let{x:P,y:M}=E.toAffine(),X=n.toBytes(P);if(kr(B,"isCompressed"),B){l();let O=!n.isOdd(M);return K(Id(O),X)}else return K(Uint8Array.of(4),X,n.toBytes(M))}function u(R){ur(R,void 0,"Point");let{publicKey:E,publicKeyUncompressed:B}=f,P=R.length,M=R[0],X=R.subarray(1);if(P===E&&(M===2||M===3)){let O=n.fromBytes(X);if(!n.isValid(O))throw new Error("bad point: is not on curve, wrong x");let N=m(O),D;try{D=n.sqrt(N)}catch(Et){let mt=Et instanceof Error?": "+Et.message:"";throw new Error("bad point: is not on curve, sqrt error"+mt)}l();let L=n.isOdd(D);return(M&1)===1!==L&&(D=n.neg(D)),{x:O,y:D}}else if(P===B&&M===4){let O=n.BYTES,N=n.fromBytes(X.subarray(0,O)),D=n.fromBytes(X.subarray(O,O*2));if(!g(N,D))throw new Error("bad point: is not on curve");return{x:N,y:D}}else throw new Error(`bad point: got length ${P}, expected compressed=${E} or uncompressed=${B}`)}let h=t.toBytes||d,p=t.fromBytes||u;function m(R){let E=n.sqr(R),B=n.mul(E,R);return n.add(n.add(B,n.mul(R,o.a)),o.b)}function g(R,E){let B=n.sqr(E),P=m(R);return n.eql(B,P)}if(!g(o.Gx,o.Gy))throw new Error("bad curve params: generator point");let y=n.mul(n.pow(o.a,En),Qi),w=n.mul(n.sqr(o.b),BigInt(27));if(n.is0(n.add(y,w)))throw new Error("bad curve params: a or b");function b(R,E,B=!1){if(!n.isValid(E)||B&&n.is0(E))throw new Error(`bad point coordinate ${R}`);return E}function v(R){if(!(R instanceof _))throw new Error("ProjectivePoint expected")}function T(R){if(!c||!c.basises)throw new Error("no endo");return Td(R,c.basises,s.ORDER)}let I=fr((R,E)=>{let{X:B,Y:P,Z:M}=R;if(n.eql(M,n.ONE))return{x:B,y:P};let X=R.is0();E==null&&(E=X?n.ONE:n.inv(M));let O=n.mul(B,E),N=n.mul(P,E),D=n.mul(M,E);if(X)return{x:n.ZERO,y:n.ZERO};if(!n.eql(D,n.ONE))throw new Error("invZ was invalid");return{x:O,y:N}}),S=fr(R=>{if(R.is0()){if(t.allowInfinityPoint&&!n.is0(R.Y))return;throw new Error("bad point: ZERO")}let{x:E,y:B}=R.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!g(E,B))throw new Error("bad point: equation left != right");if(!R.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function C(R,E,B,P,M){return B=new _(n.mul(B.X,R),B.Y,B.Z),E=as(P,E),B=as(M,B),E.add(B)}class _{constructor(E,B,P){this.X=b("x",E),this.Y=b("y",B,!0),this.Z=b("z",P),Object.freeze(this)}static CURVE(){return o}static fromAffine(E){let{x:B,y:P}=E||{};if(!E||!n.isValid(B)||!n.isValid(P))throw new Error("invalid affine point");if(E instanceof _)throw new Error("projective point not allowed");return n.is0(B)&&n.is0(P)?_.ZERO:new _(B,P,n.ONE)}static fromBytes(E){let B=_.fromAffine(p(ur(E,void 0,"point")));return B.assertValidity(),B}static fromHex(E){return _.fromBytes(ut("pointHex",E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,B=!0){return q.createCache(this,E),B||this.multiply(En),this}assertValidity(){S(this)}hasEvenY(){let{y:E}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(E)}equals(E){v(E);let{X:B,Y:P,Z:M}=this,{X,Y:O,Z:N}=E,D=n.eql(n.mul(B,N),n.mul(X,M)),L=n.eql(n.mul(P,N),n.mul(O,M));return D&&L}negate(){return new _(this.X,n.neg(this.Y),this.Z)}double(){let{a:E,b:B}=o,P=n.mul(B,En),{X:M,Y:X,Z:O}=this,N=n.ZERO,D=n.ZERO,L=n.ZERO,j=n.mul(M,M),Et=n.mul(X,X),mt=n.mul(O,O),nt=n.mul(M,X);return nt=n.add(nt,nt),L=n.mul(M,O),L=n.add(L,L),N=n.mul(E,L),D=n.mul(P,mt),D=n.add(N,D),N=n.sub(Et,D),D=n.add(Et,D),D=n.mul(N,D),N=n.mul(nt,N),L=n.mul(P,L),mt=n.mul(E,mt),nt=n.sub(j,mt),nt=n.mul(E,nt),nt=n.add(nt,L),L=n.add(j,j),j=n.add(L,j),j=n.add(j,mt),j=n.mul(j,nt),D=n.add(D,j),mt=n.mul(X,O),mt=n.add(mt,mt),j=n.mul(mt,nt),N=n.sub(N,j),L=n.mul(mt,Et),L=n.add(L,L),L=n.add(L,L),new _(N,D,L)}add(E){v(E);let{X:B,Y:P,Z:M}=this,{X,Y:O,Z:N}=E,D=n.ZERO,L=n.ZERO,j=n.ZERO,Et=o.a,mt=n.mul(o.b,En),nt=n.mul(B,X),oe=n.mul(P,O),ie=n.mul(M,N),tn=n.add(B,P),Ot=n.add(X,O);tn=n.mul(tn,Ot),Ot=n.add(nt,oe),tn=n.sub(tn,Ot),Ot=n.add(B,M);let ve=n.add(X,N);return Ot=n.mul(Ot,ve),ve=n.add(nt,ie),Ot=n.sub(Ot,ve),ve=n.add(P,M),D=n.add(O,N),ve=n.mul(ve,D),D=n.add(oe,ie),ve=n.sub(ve,D),j=n.mul(Et,Ot),D=n.mul(mt,ie),j=n.add(D,j),D=n.sub(oe,j),j=n.add(oe,j),L=n.mul(D,j),oe=n.add(nt,nt),oe=n.add(oe,nt),ie=n.mul(Et,ie),Ot=n.mul(mt,Ot),oe=n.add(oe,ie),ie=n.sub(nt,ie),ie=n.mul(Et,ie),Ot=n.add(Ot,ie),nt=n.mul(oe,Ot),L=n.add(L,nt),nt=n.mul(ve,Ot),D=n.mul(tn,D),D=n.sub(D,nt),nt=n.mul(tn,oe),j=n.mul(ve,j),j=n.add(j,nt),new _(D,L,j)}subtract(E){return this.add(E.negate())}is0(){return this.equals(_.ZERO)}multiply(E){let{endo:B}=t;if(!s.isValidNot0(E))throw new Error("invalid scalar: out of range");let P,M,X=O=>q.cached(this,O,N=>Qt(_,N));if(B){let{k1neg:O,k1:N,k2neg:D,k2:L}=T(E),{p:j,f:Et}=X(N),{p:mt,f:nt}=X(L);M=Et.add(nt),P=C(B.beta,j,mt,O,D)}else{let{p:O,f:N}=X(E);P=O,M=N}return Qt(_,[P,M])[0]}multiplyUnsafe(E){let{endo:B}=t,P=this;if(!s.isValid(E))throw new Error("invalid scalar: out of range");if(E===Vr||P.is0())return _.ZERO;if(E===Ut)return P;if(q.hasCache(this))return this.multiply(E);if(B){let{k1neg:M,k1:X,k2neg:O,k2:N}=T(E),{p1:D,p2:L}=pu(_,P,X,N);return C(B.beta,D,L,M,O)}else return q.unsafe(P,E)}multiplyAndAddUnsafe(E,B,P){let M=this.multiplyUnsafe(B).add(E.multiplyUnsafe(P));return M.is0()?void 0:M}toAffine(E){return I(this,E)}isTorsionFree(){let{isTorsionFree:E}=t;return i===Ut?!0:E?E(_,this):q.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:E}=t;return i===Ut?this:E?E(_,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return kr(E,"isCompressed"),this.assertValidity(),h(_,this,E)}toHex(E=!0){return V(this.toBytes(E))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(E=!0){return this.toBytes(E)}_setWindowSize(E){this.precompute(E)}static normalizeZ(E){return Qt(_,E)}static msm(E,B){return wn(_,s,E,B)}static fromPrivateKey(E){return _.BASE.multiply(us(s,E))}}_.BASE=new _(o.Gx,o.Gy,n.ONE),_.ZERO=new _(n.ZERO,n.ONE,n.ZERO),_.Fp=n,_.Fn=s;let A=s.BITS,q=new xn(_,t.endo?Math.ceil(A/2):A);return _.BASE.precompute(8),_}function Id(e){return Uint8Array.of(e?2:3)}function Ad(e,t){let r=e.ORDER,n=Vr;for(let p=r-Ut;p%Ze===Vr;p/=Ze)n+=Ut;let s=n,o=Ze<<s-Ut-Ut,i=o*Ze,a=(r-Ut)/i,c=(a-Ut)/Ze,f=i-Ut,l=o,d=e.pow(t,a),u=e.pow(t,(a+Ut)/Ze),h=(p,m)=>{let g=d,y=e.pow(m,f),w=e.sqr(y);w=e.mul(w,m);let b=e.mul(p,w);b=e.pow(b,c),b=e.mul(b,y),y=e.mul(b,m),w=e.mul(b,p);let v=e.mul(w,y);b=e.pow(v,l);let T=e.eql(b,e.ONE);y=e.mul(w,u),b=e.mul(v,g),w=e.cmov(y,w,T),v=e.cmov(b,v,T);for(let I=s;I>Ut;I--){let S=I-Ze;S=Ze<<S-Ut;let C=e.pow(v,S),_=e.eql(C,e.ONE);y=e.mul(w,g),g=e.mul(g,g),C=e.mul(v,g),w=e.cmov(y,w,_),v=e.cmov(C,v,_)}return{isValid:T,value:w}};if(e.ORDER%Qi===En){let p=(e.ORDER-En)/Qi,m=e.sqrt(e.neg(t));h=(g,y)=>{let w=e.sqr(y),b=e.mul(g,y);w=e.mul(w,b);let v=e.pow(w,p);v=e.mul(v,b);let T=e.mul(v,m),I=e.mul(e.sqr(v),y),S=e.eql(I,g),C=e.cmov(T,v,S);return{isValid:S,value:C}}}return h}function ta(e,t){Oo(e);let{A:r,B:n,Z:s}=t;if(!e.isValid(r)||!e.isValid(n)||!e.isValid(s))throw new Error("mapToCurveSimpleSWU: invalid opts");let o=Ad(e,s);if(!e.isOdd)throw new Error("Field does not have .isOdd()");return i=>{let a,c,f,l,d,u,h,p;a=e.sqr(i),a=e.mul(a,s),c=e.sqr(a),c=e.add(c,a),f=e.add(c,e.ONE),f=e.mul(f,n),l=e.cmov(s,e.neg(c),!e.eql(c,e.ZERO)),l=e.mul(l,r),c=e.sqr(f),u=e.sqr(l),d=e.mul(u,r),c=e.add(c,d),c=e.mul(c,f),u=e.mul(u,l),d=e.mul(u,n),c=e.add(c,d),h=e.mul(a,f);let{isValid:m,value:g}=o(c,u);p=e.mul(a,i),p=e.mul(p,g),h=e.cmov(h,f,m),p=e.cmov(p,g,m);let y=e.isOdd(i)===e.isOdd(p);p=e.cmov(e.neg(p),p,y);let w=Jt(e,[l],!0)[0];return h=e.mul(h,w),{x:h,y:p}}}function Cd(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ea(e){let{CURVE:t,curveOpts:r}=Od(e),n=Sd(t,r);return Nd(e,n)}function Od(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0,s=Pt(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),o={Fp:r,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function Rd(e,t,r){function n(s){let o=e.sqr(s),i=e.mul(o,s);return e.add(e.add(i,e.mul(s,t)),r)}return n}function Nd(e,t){let{Fp:r,Fn:n}=t;function s(i){return ji(i,Ut,n.ORDER)}let o=Rd(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:i=>us(n,i),weierstrassEquation:o,isWithinCurveOrder:s})}var Pd=BigInt(0),Po=BigInt(1),bu=BigInt(2),_n=BigInt(3);function Ud(e){let t=[];for(;e>Po;e>>=Po)(e&Po)===Pd?t.unshift(0):(e&_n)===_n?(t.unshift(-1),e+=Po):t.unshift(1);return t}function ra(e){if(!Array.isArray(e)||e.length===0)throw new Error("expected non-empty array")}function qd(e,t,r,n){let{Fp2:s,Fp12:o}=e,{twistType:i,ateLoopSize:a,xNegative:c,postPrecompute:f}=n,l;if(i==="multiplicative")l=(b,v,T,I,S,C)=>o.mul014(I,b,s.mul(v,S),s.mul(T,C));else if(i==="divisive")l=(b,v,T,I,S,C)=>o.mul034(I,s.mul(T,C),s.mul(v,S),b);else throw new Error("bls: unknown twist type");let d=s.div(s.ONE,s.mul(s.ONE,bu));function u(b,v,T,I){let S=s.sqr(T),C=s.sqr(I),_=s.mulByB(s.mul(C,_n)),A=s.mul(_,_n),q=s.sub(s.sub(s.sqr(s.add(T,I)),C),S),R=s.sub(_,S),E=s.mul(s.sqr(v),_n),B=s.neg(q);return b.push([R,E,B]),v=s.mul(s.mul(s.mul(s.sub(S,A),v),T),d),T=s.sub(s.sqr(s.mul(s.add(S,A),d)),s.mul(s.sqr(_),_n)),I=s.mul(S,q),{Rx:v,Ry:T,Rz:I}}function h(b,v,T,I,S,C){let _=s.sub(T,s.mul(C,I)),A=s.sub(v,s.mul(S,I)),q=s.sub(s.mul(_,S),s.mul(A,C)),R=s.neg(_),E=A;b.push([q,R,E]);let B=s.sqr(A),P=s.mul(B,A),M=s.mul(B,v),X=s.add(s.sub(P,s.mul(M,bu)),s.mul(s.sqr(_),I));return v=s.mul(A,X),T=s.sub(s.mul(s.sub(M,X),_),s.mul(P,T)),I=s.mul(I,P),{Rx:v,Ry:T,Rz:I}}let p=Ud(a),m=fr(b=>{let v=b,{x:T,y:I}=v.toAffine(),S=T,C=I,_=s.neg(I),A=S,q=C,R=s.ONE,E=[];for(let B of p){let P=[];({Rx:A,Ry:q,Rz:R}=u(P,A,q,R)),B&&({Rx:A,Ry:q,Rz:R}=h(P,A,q,R,S,B===-1?_:C)),E.push(P)}if(f){let B=E[E.length-1];f(A,q,R,S,C,h.bind(null,B))}return E});function g(b,v=!1){let T=o.ONE;if(b.length){let I=b[0][0].length;for(let S=0;S<I;S++){T=o.sqr(T);for(let[C,_,A]of b)for(let[q,R,E]of C[S])T=l(q,R,E,T,_,A)}}return c&&(T=o.conjugate(T)),v?o.finalExponentiate(T):T}function y(b,v=!0){let T=[];Qt(t,b.map(({g1:I})=>I)),Qt(r,b.map(({g2:I})=>I));for(let{g1:I,g2:S}of b){if(I.is0()||S.is0())throw new Error("pairing is not available for ZERO point");I.assertValidity(),S.assertValidity();let C=I.toAffine();T.push([m(S),C.x,C.y])}return g(T,v)}function w(b,v,T=!0){return y([{g1:b,g2:v}],T)}return{Fp12:o,millerLoopBatch:g,pairing:w,pairingBatch:y,calcPairingPrecomputes:m}}function gu(e,t,r,n,s){let{Fp12:o,pairingBatch:i}=e;function a(d){return d instanceof t.Point?d:t.Point.fromHex(d)}function c(d){return d instanceof r.Point?d:r.Point.fromHex(d)}function f(d){if(!(d instanceof r.Point))throw new Error(`expected valid message hashed to ${s?"G1":"G2"} curve`);return d}let l=s?(d,u)=>({g1:u,g2:d}):(d,u)=>({g1:d,g2:u});return{getPublicKey(d){let u=us(t.Point.Fn,d);return t.Point.BASE.multiply(u)},sign(d,u,h){if(h!=null)throw new Error("sign() expects 2 arguments");let p=us(t.Point.Fn,u);return f(d).assertValidity(),d.multiply(p)},verify(d,u,h,p){if(p!=null)throw new Error("verify() expects 3 arguments");d=c(d),h=a(h);let m=h.negate(),g=t.Point.BASE,y=f(u),w=d,b=i([l(m,y),l(g,w)]);return o.eql(b,o.ONE)},verifyBatch(d,u,h){if(ra(u),h.length!==u.length)throw new Error("amount of public keys and messages should be equal");let p=c(d),m=u,g=h.map(a),y=new Map;for(let v=0;v<g.length;v++){let T=g[v],I=m[v],S=y.get(I);S===void 0&&(S=[],y.set(I,S)),S.push(T)}let w=[],b=t.Point.BASE;try{for(let[v,T]of y){let I=T.reduce((S,C)=>S.add(C));w.push(l(I,v))}return w.push(l(b.negate(),p)),o.eql(i(w),o.ONE)}catch(v){return!1}},aggregatePublicKeys(d){ra(d),d=d.map(h=>a(h));let u=d.reduce((h,p)=>h.add(p),t.Point.ZERO);return u.assertValidity(),u},aggregateSignatures(d){ra(d),d=d.map(h=>c(h));let u=d.reduce((h,p)=>h.add(p),r.Point.ZERO);return u.assertValidity(),u},hash(d,u){dt(d);let h=u?{DST:u}:void 0;return r.hashToCurve(d,h)},Signature:n}}function xu(e){let{Fp:t,Fr:r,Fp2:n,Fp6:s,Fp12:o}=e.fields,i=ea(e.G1),a=Object.assign(i,Ji(i.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=ea(e.G2),f=Object.assign(c,Ji(c.Point,e.G2.mapToCurve,{...e.htfDefaults,...e.G2.htfDefaults})),l=qd(e.fields,a.Point,f.Point,{...e.params,postPrecompute:e.postPrecompute}),{millerLoopBatch:d,pairing:u,pairingBatch:h,calcPairingPrecomputes:p}=l,m=gu(l,a,f,e.G2.Signature,!1),g=gu(l,f,a,e.G1.ShortSignature,!0),y=e.randomBytes||rn,w=()=>{let O=Ro(r.ORDER);return Gi(y(O),r.ORDER)},b={randomSecretKey:w,randomPrivateKey:w,calcPairingPrecomputes:p},{ShortSignature:v}=e.G1,{Signature:T}=e.G2;function I(O,N){return O instanceof a.Point?O:g.hash(ut("point",O),N==null?void 0:N.DST)}function S(O,N){return O instanceof f.Point?O:m.hash(ut("point",O),N==null?void 0:N.DST)}function C(O){return m.getPublicKey(O).toBytes(!0)}function _(O){return g.getPublicKey(O).toBytes(!0)}function A(O,N,D){let L=S(O,D),j=m.sign(L,N);return O instanceof f.Point?j:T.toBytes(j)}function q(O,N,D){let L=I(O,D),j=g.sign(L,N);return O instanceof a.Point?j:v.toBytes(j)}function R(O,N,D,L){let j=S(N,L);return m.verify(O,j,D)}function E(O,N,D,L){let j=I(N,L);return g.verify(O,j,D)}function B(O){let N=m.aggregatePublicKeys(O);return O[0]instanceof a.Point?N:N.toBytes(!0)}function P(O){let N=m.aggregateSignatures(O);return O[0]instanceof f.Point?N:T.toBytes(N)}function M(O){let N=g.aggregateSignatures(O);return O[0]instanceof a.Point?N:v.toBytes(N)}function X(O,N,D,L){let j=N.map(Et=>S(Et,L));return m.verifyBatch(O,j,D)}return a.Point.BASE.precompute(4),{longSignatures:m,shortSignatures:g,millerLoopBatch:d,pairing:u,pairingBatch:h,verifyBatch:X,fields:{Fr:r,Fp:t,Fp2:n,Fp6:s,Fp12:o},params:{ateLoopSize:e.params.ateLoopSize,twistType:e.params.twistType,r:e.params.r,G1b:e.G1.b,G2b:e.G2.b},utils:b,getPublicKey:C,getPublicKeyForShortSignatures:_,sign:A,signShortSignature:q,verify:R,verifyShortSignature:E,aggregatePublicKeys:B,aggregateSignatures:P,aggregateShortSignatures:M,G1:a,G2:f,Signature:T,ShortSignature:v}}var wu=BigInt(0),Ye=BigInt(1),qt=BigInt(2),Eu=BigInt(3);function ia(e,t,r,n,s=1,o){let i=BigInt(o===void 0?n:o),a=r**BigInt(n),c=[];for(let f=0;f<s;f++){let l=BigInt(f+1),d=[];for(let u=0,h=Ye;u<n;u++){let p=(l*h-l)/i%a;d.push(e.pow(t,p)),h*=r}c.push(d)}return c}function vu(e,t,r){let n=t.pow(r,(e.ORDER-Ye)/Eu),s=t.pow(r,(e.ORDER-Ye)/qt);function o(u,h){let p=t.mul(t.frobeniusMap(u,1),n),m=t.mul(t.frobeniusMap(h,1),s);return[p,m]}let i=t.pow(r,(e.ORDER**qt-Ye)/Eu),a=t.pow(r,(e.ORDER**qt-Ye)/qt);if(!t.eql(a,t.neg(t.ONE)))throw new Error("psiFrobenius: PSI2_Y!==-1");function c(u,h){return[t.mul(u,i),t.neg(h)]}let f=u=>(h,p)=>{let m=p.toAffine(),g=u(m.x,m.y);return h.fromAffine({x:g[0],y:g[1]})},l=f(o),d=f(c);return{psi:o,psi2:c,G2psi:l,G2psi2:d,PSI_X:n,PSI_Y:s,PSI2_X:i,PSI2_Y:a}}var _u=(e,t)=>{if(t.length!==2)throw new Error("invalid tuple");let r=t.map(n=>e.create(n));return{c0:r[0],c1:r[1]}},na=class{constructor(t,r={}){this.MASK=Ye;let n=t.ORDER,s=n*n;this.Fp=t,this.ORDER=s,this.BITS=He(s),this.BYTES=Math.ceil(He(s)/8),this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.Fp_NONRESIDUE=t.create(r.NONRESIDUE||BigInt(-1)),this.Fp_div2=t.div(t.ONE,qt),this.NONRESIDUE=_u(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=ia(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return _u(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(s,o){return typeof s=="bigint"&&wu<=s&&s<o}return n(t,this.ORDER)&&n(r,this.ORDER)}is0({c0:t,c1:r}){return this.Fp.is0(t)&&this.Fp.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}eql({c0:t,c1:r},{c0:n,c1:s}){return this.Fp.eql(t,n)&&this.Fp.eql(r,s)}neg({c0:t,c1:r}){return{c0:this.Fp.neg(t),c1:this.Fp.neg(r)}}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}add(t,r){let{c0:n,c1:s}=t,{c0:o,c1:i}=r;return{c0:this.Fp.add(n,o),c1:this.Fp.add(s,i)}}sub({c0:t,c1:r},{c0:n,c1:s}){return{c0:this.Fp.sub(t,n),c1:this.Fp.sub(r,s)}}mul({c0:t,c1:r},n){let{Fp:s}=this;if(typeof n=="bigint")return{c0:s.mul(t,n),c1:s.mul(r,n)};let{c0:o,c1:i}=n,a=s.mul(t,o),c=s.mul(r,i),f=s.sub(a,c),l=s.sub(s.mul(s.add(t,r),s.add(o,i)),s.add(a,c));return{c0:f,c1:l}}sqr({c0:t,c1:r}){let{Fp:n}=this,s=n.add(t,r),o=n.sub(t,r),i=n.add(t,t);return{c0:n.mul(s,o),c1:n.mul(i,r)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}div(t,r){let{Fp:n}=this;return this.mul(t,typeof r=="bigint"?n.inv(n.create(r)):this.inv(r))}inv({c0:t,c1:r}){let{Fp:n}=this,s=n.inv(n.create(t*t+r*r));return{c0:n.mul(s,n.create(t)),c1:n.mul(s,n.create(-r))}}sqrt(t){let{Fp:r}=this,n=this,{c0:s,c1:o}=t;if(r.is0(o))return os(r,s)===1?n.create({c0:r.sqrt(s),c1:r.ZERO}):n.create({c0:r.ZERO,c1:r.sqrt(r.div(s,this.Fp_NONRESIDUE))});let i=r.sqrt(r.sub(r.sqr(s),r.mul(r.sqr(o),this.Fp_NONRESIDUE))),a=r.mul(r.add(i,s),this.Fp_div2);os(r,a)===-1&&(a=r.sub(a,i));let f=r.sqrt(a),l=n.create({c0:f,c1:r.div(r.mul(o,this.Fp_div2),f)});if(!n.eql(n.sqr(l),t))throw new Error("Cannot find square root");let d=l,u=n.neg(d),{re:h,im:p}=n.reim(d),{re:m,im:g}=n.reim(u);return p>g||p===g&&h>m?d:u}isOdd(t){let{re:r,im:n}=this.reim(t),s=r%qt,o=r===wu,i=n%qt;return BigInt(s||o&&i)==Ye}fromBytes(t){let{Fp:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){return K(this.Fp.toBytes(t),this.Fp.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){return{c0:this.Fp.cmov(t,n,o),c1:this.Fp.cmov(r,s,o)}}reim({c0:t,c1:r}){return{re:t,im:r}}Fp4Square(t,r){let n=this,s=n.sqr(t),o=n.sqr(r);return{first:n.add(n.mulByNonresidue(o),s),second:n.sub(n.sub(n.sqr(n.add(t,r)),s),o)}}mulByNonresidue({c0:t,c1:r}){return this.mul({c0:t,c1:r},this.NONRESIDUE)}frobeniusMap({c0:t,c1:r},n){return{c0:t,c1:this.Fp.mul(r,this.FROBENIUS_COEFFICIENTS[n%2])}}},sa=class{constructor(t){this.MASK=Ye,this.Fp2=t,this.ORDER=t.ORDER,this.BITS=3*t.BITS,this.BYTES=3*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO,c2:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO,c2:t.ZERO};let{Fp:r}=t,n=ia(t,t.NONRESIDUE,r.ORDER,6,2,3);this.FROBENIUS_COEFFICIENTS_1=n[0],this.FROBENIUS_COEFFICIENTS_2=n[1],Object.seal(this)}add({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.add(t,s),c1:a.add(r,o),c2:a.add(n,i)}}sub({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return{c0:a.sub(t,s),c1:a.sub(r,o),c2:a.sub(n,i)}}mul({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;if(typeof s=="bigint")return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)};let{c0:i,c1:a,c2:c}=s,f=o.mul(t,i),l=o.mul(r,a),d=o.mul(n,c);return{c0:o.add(f,o.mulByNonresidue(o.sub(o.mul(o.add(r,n),o.add(a,c)),o.add(l,d)))),c1:o.add(o.sub(o.mul(o.add(t,r),o.add(i,a)),o.add(f,l)),o.mulByNonresidue(d)),c2:o.sub(o.add(l,o.mul(o.add(t,n),o.add(i,c))),o.add(f,d))}}sqr({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sqr(t),i=s.mul(s.mul(t,r),qt),a=s.mul(s.mul(r,n),qt),c=s.sqr(n);return{c0:s.add(s.mulByNonresidue(a),o),c1:s.add(s.mulByNonresidue(c),i),c2:s.sub(s.sub(s.add(s.add(i,s.sqr(s.add(s.sub(t,r),n))),a),o),c)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}create(t){return t}isValid({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.isValid(t)&&s.isValid(r)&&s.isValid(n)}is0({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return s.is0(t)&&s.is0(r)&&s.is0(n)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.neg(t),c1:s.neg(r),c2:s.neg(n)}}eql({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i}){let{Fp2:a}=this;return a.eql(t,s)&&a.eql(r,o)&&a.eql(n,i)}sqrt(t){return bn()}div(t,r){let{Fp2:n}=this,{Fp:s}=n;return this.mul(t,typeof r=="bigint"?s.inv(s.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}inv({c0:t,c1:r,c2:n}){let{Fp2:s}=this,o=s.sub(s.sqr(t),s.mulByNonresidue(s.mul(n,r))),i=s.sub(s.mulByNonresidue(s.sqr(n)),s.mul(t,r)),a=s.sub(s.sqr(r),s.mul(t,n)),c=s.inv(s.add(s.mulByNonresidue(s.add(s.mul(n,i),s.mul(r,a))),s.mul(t,o)));return{c0:s.mul(c,o),c1:s.mul(c,i),c2:s.mul(c,a)}}fromBytes(t){let{Fp2:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);let n=r.BYTES;return{c0:r.fromBytes(t.subarray(0,n)),c1:r.fromBytes(t.subarray(n,n*2)),c2:r.fromBytes(t.subarray(2*n))}}toBytes({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return K(s.toBytes(t),s.toBytes(r),s.toBytes(n))}cmov({c0:t,c1:r,c2:n},{c0:s,c1:o,c2:i},a){let{Fp2:c}=this;return{c0:c.cmov(t,s,a),c1:c.cmov(r,o,a),c2:c.cmov(n,i,a)}}fromBigSix(t){let{Fp2:r}=this;if(!Array.isArray(t)||t.length!==6)throw new Error("invalid Fp6 usage");return{c0:r.fromBigTuple(t.slice(0,2)),c1:r.fromBigTuple(t.slice(2,4)),c2:r.fromBigTuple(t.slice(4,6))}}frobeniusMap({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.frobeniusMap(t,s),c1:o.mul(o.frobeniusMap(r,s),this.FROBENIUS_COEFFICIENTS_1[s%6]),c2:o.mul(o.frobeniusMap(n,s),this.FROBENIUS_COEFFICIENTS_2[s%6])}}mulByFp2({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mul(t,s),c1:o.mul(r,s),c2:o.mul(n,s)}}mulByNonresidue({c0:t,c1:r,c2:n}){let{Fp2:s}=this;return{c0:s.mulByNonresidue(n),c1:t,c2:r}}mul1({c0:t,c1:r,c2:n},s){let{Fp2:o}=this;return{c0:o.mulByNonresidue(o.mul(n,s)),c1:o.mul(t,s),c2:o.mul(r,s)}}mul01({c0:t,c1:r,c2:n},s,o){let{Fp2:i}=this,a=i.mul(t,s),c=i.mul(r,o);return{c0:i.add(i.mulByNonresidue(i.sub(i.mul(i.add(r,n),o),c)),a),c1:i.sub(i.sub(i.mul(i.add(s,o),i.add(t,r)),a),c),c2:i.add(i.sub(i.mul(i.add(t,n),s),a),c)}}},oa=class{constructor(t,r){this.MASK=Ye;let{Fp2:n}=t,{Fp:s}=n;this.Fp6=t,this.ORDER=n.ORDER,this.BITS=2*t.BITS,this.BYTES=2*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.FROBENIUS_COEFFICIENTS=ia(n,n.NONRESIDUE,s.ORDER,12,1,6)[0],this.X_LEN=r.X_LEN,this.finalExponentiate=r.Fp12finalExponentiate}create(t){return t}isValid({c0:t,c1:r}){let{Fp6:n}=this;return n.isValid(t)&&n.isValid(r)}is0({c0:t,c1:r}){let{Fp6:n}=this;return n.is0(t)&&n.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r}){let{Fp6:n}=this;return{c0:n.neg(t),c1:n.neg(r)}}eql({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return o.eql(t,n)&&o.eql(r,s)}sqrt(t){bn()}inv({c0:t,c1:r}){let{Fp6:n}=this,s=n.inv(n.sub(n.sqr(t),n.mulByNonresidue(n.sqr(r))));return{c0:n.mul(t,s),c1:n.neg(n.mul(r,s))}}div(t,r){let{Fp6:n}=this,{Fp2:s}=n,{Fp:o}=s;return this.mul(t,typeof r=="bigint"?o.inv(o.create(r)):this.inv(r))}pow(t,r){return is(this,t,r)}invertBatch(t){return Jt(this,t)}add({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.add(t,n),c1:o.add(r,s)}}sub({c0:t,c1:r},{c0:n,c1:s}){let{Fp6:o}=this;return{c0:o.sub(t,n),c1:o.sub(r,s)}}mul({c0:t,c1:r},n){let{Fp6:s}=this;if(typeof n=="bigint")return{c0:s.mul(t,n),c1:s.mul(r,n)};let{c0:o,c1:i}=n,a=s.mul(t,o),c=s.mul(r,i);return{c0:s.add(a,s.mulByNonresidue(c)),c1:s.sub(s.mul(s.add(t,r),s.add(o,i)),s.add(a,c))}}sqr({c0:t,c1:r}){let{Fp6:n}=this,s=n.mul(t,r);return{c0:n.sub(n.sub(n.mul(n.add(n.mulByNonresidue(r),t),n.add(t,r)),s),n.mulByNonresidue(s)),c1:n.add(s,s)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}fromBytes(t){let{Fp6:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){let{Fp6:n}=this;return K(n.toBytes(t),n.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:s},o){let{Fp6:i}=this;return{c0:i.cmov(t,n,o),c1:i.cmov(r,s,o)}}fromBigTwelve(t){let{Fp6:r}=this;return{c0:r.fromBigSix(t.slice(0,6)),c1:r.fromBigSix(t.slice(6,12))}}frobeniusMap(t,r){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=n.frobeniusMap(t.c1,r),c=this.FROBENIUS_COEFFICIENTS[r%12];return{c0:n.frobeniusMap(t.c0,r),c1:n.create({c0:s.mul(o,c),c1:s.mul(i,c),c2:s.mul(a,c)})}}mulByFp2({c0:t,c1:r},n){let{Fp6:s}=this;return{c0:s.mulByFp2(t,n),c1:s.mulByFp2(r,n)}}conjugate({c0:t,c1:r}){return{c0:t,c1:this.Fp6.neg(r)}}mul014({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.mul01(t,n,s),f=i.mul1(r,o);return{c0:i.add(i.mulByNonresidue(f),c),c1:i.sub(i.sub(i.mul01(i.add(r,t),n,a.add(s,o)),c),f)}}mul034({c0:t,c1:r},n,s,o){let{Fp6:i}=this,{Fp2:a}=i,c=i.create({c0:a.mul(t.c0,n),c1:a.mul(t.c1,n),c2:a.mul(t.c2,n)}),f=i.mul01(r,s,o),l=i.mul01(i.add(t,r),a.add(n,s),o);return{c0:i.add(i.mulByNonresidue(f),c),c1:i.sub(l,i.add(c,f))}}_cyclotomicSquare({c0:t,c1:r}){let{Fp6:n}=this,{Fp2:s}=n,{c0:o,c1:i,c2:a}=t,{c0:c,c1:f,c2:l}=r,{first:d,second:u}=s.Fp4Square(o,f),{first:h,second:p}=s.Fp4Square(c,a),{first:m,second:g}=s.Fp4Square(i,l),y=s.mulByNonresidue(g);return{c0:n.create({c0:s.add(s.mul(s.sub(d,o),qt),d),c1:s.add(s.mul(s.sub(h,i),qt),h),c2:s.add(s.mul(s.sub(m,a),qt),m)}),c1:n.create({c0:s.add(s.mul(s.add(y,c),qt),y),c1:s.add(s.mul(s.add(u,f),qt),u),c2:s.add(s.mul(s.add(p,l),qt),p)})}}_cyclotomicExp(t,r){let n=this.ONE;for(let s=this.X_LEN-1;s>=0;s--)n=this._cyclotomicSquare(n),Jc(r,s)&&(n=this.mul(n,t));return n}};function Bu(e){let t=Pt(e.ORDER),r=new na(t,e),n=new sa(r),s=new oa(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:s}}var It=BigInt(0),Uo=BigInt(1),te=BigInt(2),qo=BigInt(3),fs=BigInt(4),lr=BigInt("0xd201000000010000"),Dd=He(lr),jr={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:It,b:fs,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},Fd=Pt(jr.n,{modFromBytes:!0,isLE:!0}),{Fp:F,Fp2:W,Fp6:Md,Fp12:tt}=Bu({ORDER:jr.p,X_LEN:Dd,FP2_NONRESIDUE:[Uo,Uo],Fp2mulByB:({c0:e,c1:t})=>{let r=F.mul(e,fs),n=F.mul(t,fs);return{c0:F.sub(r,n),c1:F.add(r,n)}},Fp12finalExponentiate:e=>{let t=lr,r=tt.div(tt.frobeniusMap(e,6),e),n=tt.mul(tt.frobeniusMap(r,2),r),s=tt.conjugate(tt._cyclotomicExp(n,t)),o=tt.mul(tt.conjugate(tt._cyclotomicSquare(n)),s),i=tt.conjugate(tt._cyclotomicExp(o,t)),a=tt.conjugate(tt._cyclotomicExp(i,t)),c=tt.mul(tt.conjugate(tt._cyclotomicExp(a,t)),tt._cyclotomicSquare(s)),f=tt.conjugate(tt._cyclotomicExp(c,t)),l=tt.frobeniusMap(tt.mul(s,a),2),d=tt.frobeniusMap(tt.mul(i,n),3),u=tt.frobeniusMap(tt.mul(c,tt.conjugate(n)),1),h=tt.mul(tt.mul(f,tt.conjugate(o)),n);return tt.mul(tt.mul(tt.mul(l,d),u),h)}}),{G2psi:Tu,G2psi2:kd}=vu(F,W,W.div(W.ONE,W.NONRESIDUE)),aa=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:F.ORDER,m:2,k:128,expand:"xmd",hash:Tt}),fa={p:W.ORDER,n:jr.n,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),a:W.ZERO,b:W.fromBigTuple([fs,fs]),Gx:W.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:W.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")])},Do=ds(F.toBytes(It),{infinity:!0,compressed:!0});function Fo(e){e=e.slice();let t=e[0]&224,r=!!(t>>7&1),n=!!(t>>6&1),s=!!(t>>5&1);return e[0]&=31,{compressed:r,infinity:n,sort:s,value:e}}function ds(e,t){if(e[0]&224)throw new Error("setMask: non-empty mask");return t.compressed&&(e[0]|=128),t.infinity&&(e[0]|=64),t.sort&&(e[0]|=32),e}function $d(e,t,r){let{BYTES:n,ORDER:s}=F,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return Do.slice();let c=!!(a*te/s);return ds(gt(i,n),{compressed:!0,sort:c})}else return o?K(Uint8Array.of(64),new Uint8Array(2*n-1)):K(gt(i,n),gt(a,n))}function ca(e){e.assertValidity();let{BYTES:t,ORDER:r}=F,{x:n,y:s}=e.toAffine();if(e.is0())return Do.slice();let o=!!(s*te/r);return ds(gt(n,t),{compressed:!0,sort:o})}function Ld(e){let{compressed:t,infinity:r,sort:n,value:s}=Fo(e),{BYTES:o,ORDER:i}=F;if(s.length===48&&t){let a=Vt(s),c=F.create(a&ge(F.BITS));if(r){if(c!==It)throw new Error("invalid G1 point: non-empty, at infinity, with compression");return{x:It,y:It}}let f=F.add(F.pow(c,qo),F.create(jr.b)),l=F.sqrt(f);if(!l)throw new Error("invalid G1 point: compressed point");return l*te/i!==BigInt(n)&&(l=F.neg(l)),{x:F.create(c),y:F.create(l)}}else if(s.length===96&&!t){let a=Vt(s.subarray(0,o)),c=Vt(s.subarray(o));if(r){if(a!==It||c!==It)throw new Error("G1: non-empty point at infinity");return ls.G1.Point.ZERO.toAffine()}return{x:F.create(a),y:F.create(c)}}else throw new Error("invalid G1 point: expected 48/96 bytes")}function Su(e){let{infinity:t,sort:r,value:n}=Fo(ut("signatureHex",e,48)),s=F.ORDER,o=ls.G1.Point,i=Vt(n);if(t)return o.ZERO;let a=F.create(i&ge(F.BITS)),c=F.add(F.pow(a,qo),F.create(jr.b)),f=F.sqrt(c);if(!f)throw new Error("invalid G1 point: compressed");let l=BigInt(r);f*te/s!==l&&(f=F.neg(f));let d=o.fromAffine({x:a,y:f});return d.assertValidity(),d}function Vd(e,t,r){let{BYTES:n,ORDER:s}=F,o=t.is0(),{x:i,y:a}=t.toAffine();if(r){if(o)return K(Do,gt(It,n));let c=!!(a.c1===It?a.c0*te/s:a.c1*te/s);return K(ds(gt(i.c1,n),{compressed:!0,sort:c}),gt(i.c0,n))}else{if(o)return K(Uint8Array.of(64),new Uint8Array(4*n-1));let{re:c,im:f}=W.reim(i),{re:l,im:d}=W.reim(a);return K(gt(f,n),gt(c,n),gt(d,n),gt(l,n))}}function ua(e){e.assertValidity();let{BYTES:t}=F;if(e.is0())return K(Do,gt(It,t));let{x:r,y:n}=e.toAffine(),{re:s,im:o}=W.reim(r),{re:i,im:a}=W.reim(n),f=!!((a>It?a*te:i*te)/F.ORDER&Uo),l=s;return K(ds(gt(o,t),{sort:f,compressed:!0}),gt(l,t))}function jd(e){let{BYTES:t,ORDER:r}=F,{compressed:n,infinity:s,sort:o,value:i}=Fo(e);if(!n&&!s&&o||!n&&s&&o||o&&s&&n)throw new Error("invalid encoding flag: "+(e[0]&224));let a=(c,f,l)=>Vt(c.slice(f,l));if(i.length===96&&n){if(s){if(i.reduce((p,m)=>p!==0?m+1:m,0)>0)throw new Error("invalid G2 point: compressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0,t),f=a(i,t,2*t),l=W.create({c0:F.create(f),c1:F.create(c)}),d=W.add(W.pow(l,qo),fa.b),u=W.sqrt(d),h=u.c1===It?u.c0*te/r:u.c1*te/r?Uo:It;return u=o&&h>0?u:W.neg(u),{x:l,y:u}}else if(i.length===192&&!n){if(s){if(i.reduce((u,h)=>u!==0?h+1:h,0)>0)throw new Error("invalid G2 point: uncompressed");return{x:W.ZERO,y:W.ZERO}}let c=a(i,0*t,1*t),f=a(i,1*t,2*t),l=a(i,2*t,3*t),d=a(i,3*t,4*t);return{x:W.fromBigTuple([f,c]),y:W.fromBigTuple([d,l])}}else throw new Error("invalid G2 point: expected 96/192 bytes")}function Iu(e){let{ORDER:t}=F,{infinity:r,sort:n,value:s}=Fo(ut("signatureHex",e)),o=ls.G2.Point,i=s.length/2;if(i!==48&&i!==96)throw new Error("invalid compressed signature length, expected 96/192 bytes");let a=Vt(s.slice(0,i)),c=Vt(s.slice(i));if(r)return o.ZERO;let f=F.create(a&ge(F.BITS)),l=F.create(c),d=W.create({c0:l,c1:f}),u=W.add(W.pow(d,qo),fa.b),h=W.sqrt(u);if(!h)throw new Error("Failed to find a square root");let{re:p,im:m}=W.reim(h),g=BigInt(n),y=m>It&&m*te/t!==g,w=m===It&&p*te/t!==g;(y||w)&&(h=W.neg(h));let b=o.fromAffine({x:d,y:h});return b.assertValidity(),b}var ls=xu({fields:{Fp:F,Fp2:W,Fp6:Md,Fp12:tt,Fr:Fd},G1:{...jr,Fp:F,htfDefaults:{...aa,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(e,t)=>{let r=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),n=new e(F.mul(t.X,r),t.Y,t.Z);return t.multiplyUnsafe(lr).negate().multiplyUnsafe(lr).equals(n)},clearCofactor:(e,t)=>t.multiplyUnsafe(lr).add(t),mapToCurve:Yd,fromBytes:Ld,toBytes:$d,ShortSignature:{fromBytes(e){return dt(e),Su(e)},fromHex(e){return Su(e)},toBytes(e){return ca(e)},toRawBytes(e){return ca(e)},toHex(e){return V(ca(e))}}},G2:{...fa,Fp:W,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...aa},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:zd,isTorsionFree:(e,t)=>t.multiplyUnsafe(lr).negate().equals(Tu(e,t)),clearCofactor:(e,t)=>{let r=lr,n=t.multiplyUnsafe(r).negate(),s=Tu(e,t),o=t.double();return o=kd(e,o),o=o.subtract(s),s=n.add(s),s=s.multiplyUnsafe(r).negate(),o=o.add(s),o=o.subtract(n),o.subtract(t)},fromBytes:jd,toBytes:Vd,Signature:{fromBytes(e){return dt(e),Iu(e)},fromHex(e){return Iu(e)},toBytes(e){return ua(e)},toRawBytes(e){return ua(e)},toHex(e){return V(ua(e))}}},params:{ateLoopSize:lr,r:jr.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:aa,hash:Tt}),Hd=Wi(W,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(e=>e.map(t=>W.fromBigTuple(t.map(BigInt))))),Kd=Wi(F,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Gd=ta(F,{A:F.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:F.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:F.create(BigInt(11))}),Zd=ta(W,{A:W.create({c0:F.create(It),c1:F.create(BigInt(240))}),B:W.create({c0:F.create(BigInt(1012)),c1:F.create(BigInt(1012))}),Z:W.create({c0:F.create(BigInt(-2)),c1:F.create(BigInt(-1))})});function Yd(e){let{x:t,y:r}=Gd(F.create(e[0]));return Kd(t,r)}function zd(e){let{x:t,y:r}=Zd(W.fromBigTuple(e));return Hd(t,r)}function Au(e,t,r){let n=typeof e=="string"?e:V(e),s=typeof t=="string"?t:V(t),o=typeof r=="string"?r:V(r);return ls.verifyShortSignature(s,o,n)}var Wd=BigInt(1e6),da=e=>ht(new he(e)),hr=e=>{let r=da(e)/Wd;return new Date(Number(r))};var Cu=60*1e3,Jd=60,Qd=24,tl=Qd*Jd,el=5,rl=5,nl=30*tl,ft;(function(e){e[e.Empty=0]="Empty",e[e.Fork=1]="Fork",e[e.Labeled=2]="Labeled",e[e.Leaf=3]="Leaf",e[e.Pruned=4]="Pruned"})(ft||(ft={}));function sl(e,t){for(let r=0;r<e.length;r++)if(e[r]>t[r])return!0;return!1}var vn,ee,ms=class ms{constructor(t,r,n,s,o=el,i=!1,a){k(this,vn,!1);k(this,ee);this._rootKey=r,this._principal=n,this._blsVerify=s,this._maxAgeInMinutes=o,U(this,vn,i),this.cert=Lt(t),a&&"getTimeDiffMsecs"in a&&"hasSyncedTime"in a&&"syncTime"in a&&"syncTimeWithSubnet"in a&&U(this,ee,a)}static async create(t){let r=ms.createUnverified(t);return await r.verify(),r}static createUnverified(t){var r;return new ms(t.certificate,t.rootKey,t.principal,(r=t.blsVerify)!=null?r:Au,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}lookup_path(t){return ze(t,this.cert.tree)}lookup_subtree(t){return ys(t,this.cert.tree)}async verify(){var a,c,f;let t=await ko(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,s=il(r),o=K(Fc,t),i=Ct(this.lookup_path(["time"]));if(!i)throw rt.fromCode(new ue("Certificate does not contain a time"));if(!x(this,vn)){let l=(c=(a=x(this,ee))==null?void 0:a.getTimeDiffMsecs())!=null?c:0,d=this._maxAgeInMinutes*Cu,u=new Date,h=u.getTime()+l,p=h-d,m=h+rl*Cu,g=hr(i),y=g.getTime()<p,w=g.getTime()>m;if((y||w)&&x(this,ee)&&!x(this,ee).hasSyncedTime())return await this._syncTime(),await this.verify();if(y)throw Mt.fromCode(new Fe(this._maxAgeInMinutes,g,u,l,"past"));if(w)throw(f=x(this,ee))!=null&&f.hasSyncedTime()?it.fromCode(new vt("System time has been synced with the IC network, but certificate is still too far in the future.")):Mt.fromCode(new Fe(5,g,u,l,"future"))}try{if(!await this._blsVerify(s,n,o))throw Mt.fromCode(new ue("Invalid signature"))}catch(l){throw Mt.fromCode(new ue("Signature verification failed",l))}}async _checkDelegationAndGetKey(t){if(!t)return this._rootKey;let r=ms.createUnverified({certificate:t.certificate,rootKey:this._rootKey,principal:this._principal,blsVerify:this._blsVerify,disableTimeVerification:x(this,vn),maxAgeInMinutes:nl,agent:x(this,ee)});if(r.cert.delegation)throw rt.fromCode(new js);await r.verify();let n;if(Ru(this._principal)){let o=this._principal.canisterId;if(n=$.fromUint8Array(t.subnet_id),!la({canisterId:o,subnetId:n,tree:r.cert.tree}))throw Mt.fromCode(new Or(o,n))}else if(Ou(this._principal))n=this._principal.subnetId;else throw Xt;let s=Ct(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!s)throw Ou(this._principal)?Mt.fromCode(new Hs(n)):Mt.fromCode(new Gs(`Could not find subnet key for subnet ID ${n.toText()}`));return s}async _syncTime(){x(this,ee)&&(Ru(this._principal)?await x(this,ee).syncTime(this._principal.canisterId):await x(this,ee).syncTimeWithSubnet(this._principal.subnetId))}};vn=new WeakMap,ee=new WeakMap;var re=ms;function Ou(e){return"subnetId"in e}function Ru(e){return"canisterId"in e}var hs=Bt("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),ol=96;function il(e){let t=hs.byteLength+ol;if(e.byteLength!==t)throw rt.fromCode(new nn(t,e.byteLength));let r=e.slice(0,hs.byteLength);if(!qr(r,hs))throw rt.fromCode(new Zs(hs,r));return e.slice(hs.byteLength)}function Ct(e){if(e.status===At.Found&&e.value instanceof Uint8Array)return e.value}async function ko(e){switch(e[0]){case ft.Empty:return Tt(Mo("ic-hashtree-empty"));case ft.Pruned:return e[1];case ft.Leaf:return Tt(K(Mo("ic-hashtree-leaf"),e[1]));case ft.Labeled:return Tt(K(Mo("ic-hashtree-labeled"),e[1],await ko(e[2])));case ft.Fork:return Tt(K(Mo("ic-hashtree-fork"),await ko(e[1]),await ko(e[2])));default:throw Xt}}function Mo(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function Nu(e){return typeof e[0]=="string"?z(e[0]):e[0]}var At;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(At||(At={}));var pr;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found"})(pr||(pr={}));var ct;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found",e.Less="Less",e.Greater="Greater"})(ct||(ct={}));function ze(e,t){if(e.length===0)switch(t[0]){case ft.Empty:return{status:At.Absent};case ft.Leaf:{if(!t[1])throw it.fromCode(new sr("Invalid tree structure for leaf"));if(t[1]instanceof Uint8Array)return{status:At.Found,value:t[1].slice(t[1].byteOffset,t[1].byteLength+t[1].byteOffset)};throw Xt}case ft.Pruned:return{status:At.Unknown};case ft.Labeled:case ft.Fork:return{status:At.Error};default:throw Xt}let r=Nu(e),n=ps(r,t);switch(n.status){case ct.Found:return ze(e.slice(1),n.value);case ct.Absent:case ct.Greater:case ct.Less:return{status:At.Absent};case ct.Unknown:return{status:At.Unknown};default:throw Xt}}function ys(e,t){if(e.length===0)return{status:pr.Found,value:t};let r=Nu(e),n=ps(r,t);switch(n.status){case ct.Found:return ys(e.slice(1),n.value);case ct.Unknown:return{status:pr.Unknown};case ct.Absent:case ct.Greater:case ct.Less:return{status:pr.Absent};default:throw Xt}}function Lo(e){switch(e[0]){case ft.Empty:return[];case ft.Fork:return Lo(e[1]).concat(Lo(e[2]));default:return[e]}}function ps(e,t){switch(t[0]){case ft.Labeled:return sl(e,t[1])?{status:ct.Greater}:qr(e,t[1])?{status:ct.Found,value:t[2]}:{status:ct.Less};case ft.Fork:{let r=ps(e,t[1]);switch(r.status){case ct.Greater:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Absent}:n}case ct.Unknown:{let n=ps(e,t[2]);return n.status===ct.Less?{status:ct.Unknown}:n}default:return r}}case ft.Pruned:return{status:ct.Unknown};default:return{status:ct.Absent}}}function $o(e,t){switch(t[0]){case ft.Empty|ft.Pruned:return[];case ft.Leaf:return[e];case ft.Fork:return $o(e,t[1]).concat($o(e,t[2]));case ft.Labeled:{let r=t[1],n=t[2],s=[...e,r];return $o(s,n)}default:throw Xt}}function la(e){let t=al(e),r=ha(t),{canisterId:n}=e;return r.some(o=>o[0].ltEq(n)&&o[1].gtEq(n))}function al(e){let{subnetId:t,tree:r,canisterId:n}=e,s=ys(["canister_ranges",t.toUint8Array()],r);if(s.status!==pr.Found)return cl(t,r);let o=s.value,i=ul(o);if(i.length===0)throw rt.fromCode(new Or(n,t));i.sort(on);let a=fl(i,n),c=i[a];return dl(c,o)}function cl(e,t){let r=ze(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==At.Found)throw rt.fromCode(new fe(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function ha(e){return Lt(e).map(n=>[$.fromUint8Array(n[0]),$.fromUint8Array(n[1])])}function ul(e){let t=[];for(let r of $o([],e)){let n=r[0];if(!n)throw rt.fromCode(new ue("Path is invalid"));t.push(n)}return t}function fl(e,t){let r=t.toUint8Array(),n=0,s=e.length-1;for(;n<s;){let o=Math.floor((n+s)/2);on(e[o],r)<=0?s=o:n=o+1}return n}function dl(e,t){let r=ze([e],t);if(r.status!==At.Found)throw rt.fromCode(new fe(`Could not find canister range for shard ${e.toString()}`,r.status));return r.value}function pa(e,t){return e.delegation?$.fromUint8Array(e.delegation.subnet_id):$.selfAuthenticating(t)}var Pu=$.fromText("tdb26-jop6k-aogll-7ltgs-eruif-6kk7m-qpktf-gdiqx-mxtrf-vb5e6-eqe");function Vo(e,t){switch(t){case"raw":return e;case"leb128":return da(e);case"cbor":return Lt(e);case"hex":return V(e);case"utf-8":return new TextDecoder().decode(e)}}function Uu(e){return Lt(e).map(r=>$.fromUint8Array(r))}function qu(e,t){let r=typeof e=="string"?z(e):e;return[z("canister"),t,z("metadata"),r]}function mr(e){return typeof e=="object"&&e!==null&&"key"in e&&"path"in e}function Bn(e,t){let r=ys(["subnet",t.toUint8Array(),"node"],e.tree);if(r.status!==pr.Found)throw rt.fromCode(new fe("Node not found",r.status));if(r.value instanceof Uint8Array)throw it.fromCode(new sr("Invalid node tree"));let n=Lo(r.value),s=new Map;return n.forEach(o=>{let i=$.from(o[1]).toText(),a=ze(["public_key"],o[2]);if(a.status!==At.Found)throw rt.fromCode(new fe("Public key not found",a.status));let c=a.value;if(c.byteLength!==44)throw rt.fromCode(new nn(44,c.byteLength));s.set(i,c)}),s}var Du=async e=>{let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=$.from(e.canisterId),o=[...new Set(r)],i=new Map,a=o.map((c,f)=>{let l=hl(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let d=t.rootKey,u=await t.readState(s,{paths:[l]}),h=await re.create({certificate:u.certificate,rootKey:d,principal:{canisterId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="subnet"){let b=ll(u.certificate,s,d);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(l))}},{path:m,data:g}=p(h,o[f]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"controllers":{i.set(m,Uu(g));break}case"module_hash":{i.set(m,V(g));break}case"subnet":{i.set(m,g);break}case"candid":{i.set(m,new TextDecoder().decode(g));break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(d){if(d instanceof Kt&&(d.hasCode(ue)||d.hasCode(Fe)))throw d;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i},ll=(e,t,r)=>{if(!t._isPrincipal)throw J.fromCode(new vt("Invalid canisterId"));let n=Lt(e),{delegation:s}=n,o;s&&s.subnet_id?o=$.fromUint8Array(new Uint8Array(s.subnet_id)):!s&&typeof r!="undefined"?o=$.selfAuthenticating(new Uint8Array(r)):o=Pu;let i=Bn(n,o);return{subnetId:o.toText(),nodeKeys:i}},hl=(e,t)=>{let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"controllers":return[z("canister"),r,z("controllers")];case"module_hash":return[z("canister"),r,z("module_hash")];case"subnet":return[z("subnet")];case"candid":return[z("canister"),r,z("metadata"),z("candid:service")];default:if(mr(e))return typeof e.path=="string"||e.path instanceof Uint8Array?qu(e.path,r):e.path}throw it.fromCode(new vt(`Error while encoding your path for canister status. Please ensure that your path ${e} was formatted correctly.`))};async function Fu(e){let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,s=$.from(e.subnetId),o=[...new Set(r)],i=new Map,a=o.map((c,f)=>{let l=pl(c,s);return(async()=>{try{if(t.rootKey===null)throw St.fromCode(new le);let d=t.rootKey,u=await t.readSubnetState(s,{paths:[l]}),h=await re.create({certificate:u.certificate,rootKey:d,principal:{subnetId:s},disableTimeVerification:n,agent:t}),p=(y,w)=>{if(w==="nodeKeys"){let b=Bn(y.cert,s);return{path:w,data:b}}return{path:w,data:Ct(y.lookup_path(l))}},{path:m,data:g}=p(h,o[f]);if(!g)typeof m=="string"?i.set(m,null):i.set(m.key,null);else switch(m){case"time":{i.set(m,hr(g));break}case"canisterRanges":{i.set(m,ha(g));break}case"publicKey":{i.set(m,g);break}case"nodeKeys":{i.set(m,g);break}default:mr(m)&&i.set(m.key,Vo(g,m.decodeStrategy))}}catch(d){if(d instanceof Kt&&(d.hasCode(ue)||d.hasCode(Fe)))throw d;mr(c)?i.set(c.key,null):i.set(c,null)}})()});return await Promise.all(a),i}function pl(e,t){let r=t.toUint8Array();switch(e){case"time":return[z("time")];case"canisterRanges":return[z("canister_ranges"),r];case"publicKey":return[z("subnet"),r,z("public_key")];case"nodeKeys":return[z("subnet"),r,z("node")];default:if(mr(e)){if(typeof e.path=="string"||e.path instanceof Uint8Array){let n=typeof e.path=="string"?z(e.path):e.path;return[z("subnet"),r,n]}return e.path}}throw it.fromCode(new vt(`Error while encoding your path for subnet status. Please ensure that your path ${e} was formatted correctly.`))}function jo(e,t,r){let n=new Uint8Array(Ct(e.lookup_path([...t,"reject_code"])))[0],s=new TextDecoder().decode(Ct(e.lookup_path([...t,"reject_message"]))),o=Ct(e.lookup_path([...t,"error_code"])),i=o?new TextDecoder().decode(o):void 0;return new Js(r,n,s,i)}var yr=BigInt(0),wt=BigInt(1),ma=BigInt(2),ml=BigInt(8);function yl(e,t,r,n){let s=e.sqr(r),o=e.sqr(n),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function bl(e,t={}){let r=No("edwards",e,t,t.FpFnLE),{Fp:n,Fn:s}=r,o=r.CURVE,{h:i}=o;Ke(t,{},{uvRatio:"function"});let a=ma<<BigInt(s.BYTES*8)-wt,c=g=>n.create(g),f=t.uvRatio||((g,y)=>{try{return{isValid:!0,value:n.sqrt(n.div(g,y))}}catch(w){return{isValid:!1,value:yr}}});if(!yl(n,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function l(g,y,w=!1){let b=w?wt:yr;return Co("coordinate "+g,y,b,a),y}function d(g){if(!(g instanceof p))throw new Error("ExtendedPoint expected")}let u=fr((g,y)=>{let{X:w,Y:b,Z:v}=g,T=g.is0();y==null&&(y=T?ml:n.inv(v));let I=c(w*y),S=c(b*y),C=n.mul(v,y);if(T)return{x:yr,y:wt};if(C!==wt)throw new Error("invZ was invalid");return{x:I,y:S}}),h=fr(g=>{let{a:y,d:w}=o;if(g.is0())throw new Error("bad point: ZERO");let{X:b,Y:v,Z:T,T:I}=g,S=c(b*b),C=c(v*v),_=c(T*T),A=c(_*_),q=c(S*y),R=c(_*c(q+C)),E=c(A+c(w*c(S*C)));if(R!==E)throw new Error("bad point: equation left != right (1)");let B=c(b*v),P=c(T*I);if(B!==P)throw new Error("bad point: equation left != right (2)");return!0});class p{constructor(y,w,b,v){this.X=l("x",y),this.Y=l("y",w),this.Z=l("z",b,!0),this.T=l("t",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(y){if(y instanceof p)throw new Error("extended point not allowed");let{x:w,y:b}=y||{};return l("x",w),l("y",b),new p(w,b,wt,c(w*b))}static fromBytes(y,w=!1){let b=n.BYTES,{a:v,d:T}=o;y=Vi(ur(y,b,"point")),kr(w,"zip215");let I=Vi(y),S=y[b-1];I[b-1]=S&-129;let C=je(I),_=w?a:n.ORDER;Co("point.y",C,yr,_);let A=c(C*C),q=c(A-wt),R=c(T*A-v),{isValid:E,value:B}=f(q,R);if(!E)throw new Error("bad point: invalid y coordinate");let P=(B&wt)===wt,M=(S&128)!==0;if(!w&&B===yr&&M)throw new Error("bad point: x=0 and x_0=1");return M!==P&&(B=c(-B)),p.fromAffine({x:B,y:C})}static fromHex(y,w=!1){return p.fromBytes(ut("point",y),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,w=!0){return m.createCache(this,y),w||this.multiply(ma),this}assertValidity(){h(this)}equals(y){d(y);let{X:w,Y:b,Z:v}=this,{X:T,Y:I,Z:S}=y,C=c(w*S),_=c(T*v),A=c(b*S),q=c(I*v);return C===_&&A===q}is0(){return this.equals(p.ZERO)}negate(){return new p(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:y}=o,{X:w,Y:b,Z:v}=this,T=c(w*w),I=c(b*b),S=c(ma*c(v*v)),C=c(y*T),_=w+b,A=c(c(_*_)-T-I),q=C+I,R=q-S,E=C-I,B=c(A*R),P=c(q*E),M=c(A*E),X=c(R*q);return new p(B,P,X,M)}add(y){d(y);let{a:w,d:b}=o,{X:v,Y:T,Z:I,T:S}=this,{X:C,Y:_,Z:A,T:q}=y,R=c(v*C),E=c(T*_),B=c(S*b*q),P=c(I*A),M=c((v+T)*(C+_)-R-E),X=P-B,O=P+B,N=c(E-w*R),D=c(M*X),L=c(O*N),j=c(M*N),Et=c(X*O);return new p(D,L,Et,j)}subtract(y){return this.add(y.negate())}multiply(y){if(!s.isValidNot0(y))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:b}=m.cached(this,y,v=>Qt(p,v));return Qt(p,[w,b])[0]}multiplyUnsafe(y,w=p.ZERO){if(!s.isValid(y))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return y===yr?p.ZERO:this.is0()||y===wt?this:m.unsafe(this,y,b=>Qt(p,b),w)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return m.unsafe(this,o.n).is0()}toAffine(y){return u(this,y)}clearCofactor(){return i===wt?this:this.multiplyUnsafe(i)}toBytes(){let{x:y,y:w}=this.toAffine(),b=n.toBytes(w);return b[b.length-1]|=y&wt?128:0,b}toHex(){return V(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(y){return Qt(p,y)}static msm(y,w){return wn(p,s,y,w)}_setWindowSize(y){this.precompute(y)}toRawBytes(){return this.toBytes()}}p.BASE=new p(o.Gx,o.Gy,wt,c(o.Gx*o.Gy)),p.ZERO=new p(yr,wt,wt,yr),p.Fp=n,p.Fn=s;let m=new xn(p,s.BITS);return p.BASE.precompute(8),p}var Ho=class{constructor(t){this.ep=t}static fromBytes(t){bn()}static fromHex(t){bn()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return V(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.init(this.ep.precompute(t,r))}toRawBytes(){return this.toBytes()}};function gl(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');Ke(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:s,Fp:o,Fn:i}=e,a=r.randomBytes||rn,c=r.adjustScalarBytes||(_=>_),f=r.domain||((_,A,q)=>{if(kr(q,"phflag"),A.length||q)throw new Error("Contexts/pre-hash are not supported");return _});function l(_){return i.create(je(_))}function d(_){let A=b.secretKey;_=ut("private key",_,A);let q=ut("hashed private key",t(_),2*A),R=c(q.slice(0,A)),E=q.slice(A,2*A),B=l(R);return{head:R,prefix:E,scalar:B}}function u(_){let{head:A,prefix:q,scalar:R}=d(_),E=s.multiply(R),B=E.toBytes();return{head:A,prefix:q,scalar:R,point:E,pointBytes:B}}function h(_){return u(_).pointBytes}function p(_=Uint8Array.of(),...A){let q=K(...A);return l(t(f(q,ut("context",_),!!n)))}function m(_,A,q={}){_=ut("message",_),n&&(_=n(_));let{prefix:R,scalar:E,pointBytes:B}=u(A),P=p(q.context,R,_),M=s.multiply(P).toBytes(),X=p(q.context,M,B,_),O=i.create(P+X*E);if(!i.isValid(O))throw new Error("sign failed: invalid s");let N=K(M,i.toBytes(O));return ur(N,b.signature,"result")}let g={zip215:!0};function y(_,A,q,R=g){let{context:E,zip215:B}=R,P=b.signature;_=ut("signature",_,P),A=ut("message",A),q=ut("publicKey",q,b.publicKey),B!==void 0&&kr(B,"zip215"),n&&(A=n(A));let M=P/2,X=_.subarray(0,M),O=je(_.subarray(M,P)),N,D,L;try{N=e.fromBytes(q,B),D=e.fromBytes(X,B),L=s.multiplyUnsafe(O)}catch(mt){return!1}if(!B&&N.isSmallOrder())return!1;let j=p(E,D.toBytes(),N.toBytes(),A);return D.add(N.multiplyUnsafe(j)).subtract(L).clearCofactor().is0()}let w=o.BYTES,b={secretKey:w,publicKey:w,signature:2*w,seed:w};function v(_=a(b.seed)){return ur(_,b.seed,"seed")}function T(_){let A=C.randomSecretKey(_);return{secretKey:A,publicKey:h(A)}}function I(_){return Be(_)&&_.length===i.BYTES}function S(_,A){try{return!!e.fromBytes(_,A)}catch(q){return!1}}let C={getExtendedPublicKey:u,randomSecretKey:v,isValidSecretKey:I,isValidPublicKey:S,toMontgomery(_){let{y:A}=e.fromBytes(_),q=b.publicKey,R=q===32;if(!R&&q!==57)throw new Error("only defined for 25519 and 448");let E=R?o.div(wt+A,wt-A):o.div(A-wt,A+wt);return o.toBytes(E)},toMontgomerySecret(_){let A=b.secretKey;ur(_,A);let q=t(_.subarray(0,A));return c(q).subarray(0,A)},randomPrivateKey:v,precompute(_=8,A=e.BASE){return A.precompute(_,!1)}};return Object.freeze({keygen:T,getPublicKey:h,sign:m,verify:y,utils:C,Point:e,lengths:b})}function xl(e){let t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=Pt(t.n,e.nBitLength,!0),s={Fp:r,Fn:n,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function wl(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function Mu(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:s}=xl(e),o=bl(t,r),i=gl(o,n,s);return wl(e,i)}var El=BigInt(0),Xe=BigInt(1),ku=BigInt(2),Kp=BigInt(3),_l=BigInt(5),vl=BigInt(8),Tn=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),bs={p:Tn,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:vl,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Bl(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),s=BigInt(80),o=Tn,a=e*e%o*e%o,c=xe(a,ku,o)*a%o,f=xe(c,Xe,o)*e%o,l=xe(f,_l,o)*f%o,d=xe(l,t,o)*l%o,u=xe(d,r,o)*d%o,h=xe(u,n,o)*u%o,p=xe(h,s,o)*h%o,m=xe(p,s,o)*h%o,g=xe(m,t,o)*l%o;return{pow_p_5_8:xe(g,ku,o)*e%o,b2:a}}function Tl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var ya=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function xa(e,t){let r=Tn,n=at(t*t*t,r),s=at(n*n*t,r),o=Bl(e*s).pow_p_5_8,i=at(e*n*o,r),a=at(t*i*i,r),c=i,f=at(i*ya,r),l=a===e,d=a===at(-e,r),u=a===at(-e*ya,r);return l&&(i=c),(d||u)&&(i=f),Ge(i,r)&&(i=at(-i,r)),{isValid:l||d,value:i}}var br=Pt(bs.p,{isLE:!0}),Sl=Pt(bs.n,{isLE:!0}),Il={...bs,Fp:br,hash:rc,adjustScalarBytes:Tl,uvRatio:xa},Dt=Mu(Il);var ba=ya,Al=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Cl=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Ol=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Rl=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),$u=e=>xa(Xe,e),Nl=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ga=e=>Dt.Point.Fp.create(je(e)&Nl);function Lu(e){let{d:t}=bs,r=Tn,n=y=>br.create(y),s=n(ba*e*e),o=n((s+Xe)*Ol),i=BigInt(-1),a=n((i-t*s)*n(s+t)),{isValid:c,value:f}=xa(o,a),l=n(f*e);Ge(l,r)||(l=n(-l)),c||(f=l),c||(i=s);let d=n(i*(s-Xe)*Rl-a),u=f*f,h=n((f+f)*a),p=n(d*Al),m=n(Xe-u),g=n(Xe+u);return new Dt.Point(n(h*g),n(m*p),n(p*g),n(h*m))}function Pl(e){dt(e,64);let t=ga(e.subarray(0,32)),r=Lu(t),n=ga(e.subarray(32,64)),s=Lu(n);return new We(r.add(s))}var We=class e extends Ho{constructor(t){super(t)}static fromAffine(t){return new e(Dt.Point.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static hashToCurve(t){return Pl(ut("ristrettoHash",t,64))}static fromBytes(t){dt(t,32);let{a:r,d:n}=bs,s=Tn,o=v=>br.create(v),i=ga(t);if(!Wc(br.toBytes(i),t)||Ge(i,s))throw new Error("invalid ristretto255 encoding 1");let a=o(i*i),c=o(Xe+r*a),f=o(Xe-r*a),l=o(c*c),d=o(f*f),u=o(r*n*l-d),{isValid:h,value:p}=$u(o(u*d)),m=o(p*f),g=o(p*m*u),y=o((i+i)*m);Ge(y,s)&&(y=o(-y));let w=o(c*g),b=o(y*w);if(!h||Ge(b,s)||w===El)throw new Error("invalid ristretto255 encoding 2");return new e(new Dt.Point(y,w,Xe,b))}static fromHex(t){return e.fromBytes(ut("ristrettoHex",t,32))}static msm(t,r){return wn(e,Dt.Point.Fn,t,r)}toBytes(){let{X:t,Y:r,Z:n,T:s}=this.ep,o=Tn,i=g=>br.create(g),a=i(i(n+r)*i(n-r)),c=i(t*r),f=i(c*c),{value:l}=$u(i(a*f)),d=i(l*a),u=i(l*c),h=i(d*u*s),p;if(Ge(s*h,o)){let g=i(r*ba),y=i(t*ba);t=g,r=y,p=i(d*Cl)}else p=u;Ge(t*h,o)&&(r=i(-r));let m=i((n-r)*p);return Ge(m,o)&&(m=i(-m)),br.toBytes(m)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:s,Y:o}=t.ep,i=f=>br.create(f),a=i(r*o)===i(n*s),c=i(n*o)===i(r*s);return a||c}is0(){return this.equals(e.ZERO)}};We.BASE=new We(Dt.Point.BASE);We.ZERO=new We(Dt.Point.ZERO);We.Fp=br;We.Fn=Sl;function Ko(e){if(!Number.isFinite(e)||e<=0)throw new Error(`expirationTime must be a positive finite number, got ${e}`)}var xs,jt,gr,Ht,gs,Vu,wa,ju,Go=class{constructor(t){k(this,Ht);k(this,xs);k(this,jt);k(this,gr,null);if(typeof globalThis.indexedDB=="undefined")throw new Error("IndexedDBExpirableStore requires IndexedDB, which is not available in this environment");Ko(t.expirationTime),U(this,xs,t.dbName),U(this,jt,t.storeName),this.expirationTime=t.expirationTime}async get(t){let r=await Y(this,Ht,gs).call(this);return new Promise((n,s)=>{let a=r.transaction(x(this,jt),"readonly").objectStore(x(this,jt)).get(t);a.onsuccess=()=>{let c=a.result;if(!c){n(void 0);return}if(Date.now()-c.timestamp>this.expirationTime){this.delete(t).then(()=>n(void 0),()=>n(void 0));return}n(c.value)},a.onerror=()=>s(a.error)})}async set(t,r){await Y(this,Ht,ju).call(this);let n=await Y(this,Ht,gs).call(this);return new Promise((s,o)=>{let i=n.transaction(x(this,jt),"readwrite"),a=i.objectStore(x(this,jt)),c={key:t,value:r,timestamp:Date.now()};a.put(c),i.oncomplete=()=>s(),i.onerror=()=>o(i.error)})}async delete(t){let r=await Y(this,Ht,gs).call(this);return new Promise((n,s)=>{let o=r.transaction(x(this,jt),"readwrite");o.objectStore(x(this,jt)).delete(t),o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})}};xs=new WeakMap,jt=new WeakMap,gr=new WeakMap,Ht=new WeakSet,gs=function(){return x(this,gr)||U(this,gr,Y(this,Ht,Vu).call(this).catch(t=>{throw U(this,gr,null),t})),x(this,gr)},Vu=async function(){let t=await Y(this,Ht,wa).call(this);if(t.objectStoreNames.contains(x(this,jt)))return t;let r=t.version+1;return t.close(),Y(this,Ht,wa).call(this,r)},wa=function(t){let r=x(this,jt);return new Promise((n,s)=>{let o=globalThis.indexedDB.open(x(this,xs),t);o.onupgradeneeded=()=>{let i=o.result;i.objectStoreNames.contains(r)||i.createObjectStore(r,{keyPath:"key"})},o.onsuccess=()=>{let i=o.result;i.onversionchange=()=>{i.close(),U(this,gr,null)},n(i)},o.onerror=()=>s(o.error)})},ju=async function(){let t=await Y(this,Ht,gs).call(this),r=Date.now();return new Promise((n,s)=>{let o=t.transaction(x(this,jt),"readwrite"),a=o.objectStore(x(this,jt)).openCursor();a.onsuccess=()=>{let c=a.result;if(!c)return;let f=c.value;r-f.timestamp>this.expirationTime&&c.delete(),c.continue()},o.oncomplete=()=>n(),o.onerror=()=>s(o.error)})};var Oe,Yo,Hu,Zo=class{constructor(t){k(this,Yo);k(this,Oe);Ko(t.expirationTime),this.expirationTime=t.expirationTime,U(this,Oe,new Map)}get(t){let r=x(this,Oe).get(t);return r?Date.now()-r.timestamp>this.expirationTime?(x(this,Oe).delete(t),Promise.resolve(void 0)):Promise.resolve(r.value):Promise.resolve(void 0)}set(t,r){return Y(this,Yo,Hu).call(this),x(this,Oe).set(t,{value:r,timestamp:Date.now()}),Promise.resolve()}delete(t){return x(this,Oe).delete(t),Promise.resolve()}};Oe=new WeakMap,Yo=new WeakSet,Hu=function(){let t=Date.now();for(let[r,n]of x(this,Oe))t-n.timestamp>this.expirationTime&&x(this,Oe).delete(r)};function Ku(e){return typeof globalThis.indexedDB!="undefined"?new Go(e):new Zo({expirationTime:e.expirationTime})}var Gu=e=>{if(e<=127)return 1;if(e<=255)return 2;if(e<=65535)return 3;if(e<=16777215)return 4;throw J.fromCode(new kn("Length too long (> 4 bytes)"))},Zu=(e,t,r)=>{if(r<=127)return e[t]=r,1;if(r<=255)return e[t]=129,e[t+1]=r,2;if(r<=65535)return e[t]=130,e[t+1]=r>>8,e[t+2]=r,3;if(r<=16777215)return e[t]=131,e[t+1]=r>>16,e[t+2]=r>>8,e[t+3]=r,4;throw J.fromCode(new kn("Length too long (> 4 bytes)"))},Ea=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw J.fromCode(new de("Invalid length 0"));if(e[t]===129)return 2;if(e[t]===130)return 3;if(e[t]===131)return 4;throw J.fromCode(new de("Length too long (> 4 bytes)"))},Ul=(e,t)=>{let r=Ea(e,t);if(r===1)return e[t];if(r===2)return e[t+1];if(r===3)return(e[t+1]<<8)+e[t+2];if(r===4)return(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];throw J.fromCode(new de("Length too long (> 4 bytes)"))},om=Uint8Array.from([48,12,6,10,43,6,1,4,1,131,184,67,1,1]),Sn=Uint8Array.from([48,5,6,3,43,101,112]),im=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),am=Uint8Array.from([48,29,6,13,43,6,1,4,1,130,220,124,5,3,1,2,1,6,12,43,6,1,4,1,130,220,124,5,3,2,1]);function zo(e,t){let r=2+Gu(e.byteLength+1),n=t.byteLength+r+e.byteLength,s=0,o=new Uint8Array(1+Gu(n)+n);return o[s++]=48,s+=Zu(o,s,n),o.set(t,s),s+=t.byteLength,o[s++]=3,s+=Zu(o,s,e.byteLength+1),o[s++]=0,o.set(new Uint8Array(e),s),o}var Xo=(e,t)=>{let r=0,n=(a,c)=>{if(s[r++]!==a)throw J.fromCode(new de(`Expected ${c} at offset ${r}`))},s=new Uint8Array(e);if(n(48,"sequence"),r+=Ea(s,r),!qr(s.slice(r,r+t.byteLength),t))throw J.fromCode(new de("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let o=Ul(s,r)-1;r+=Ea(s,r),n(0,"0 padding");let i=s.slice(r);if(o!==i.length)throw J.fromCode(new Ys(o,i.length));return i};var ws,Es,Hr=class Hr{constructor(t){k(this,ws);k(this,Es);if(t.byteLength!==Hr.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));U(this,ws,t),U(this,Es,Hr.derEncode(t))}static from(t){return this.fromDer(t.toDer())}static fromRaw(t){return new Hr(t)}static fromDer(t){return new Hr(this.derDecode(t))}static derEncode(t){return zo(t,Sn)}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw J.fromCode(new de("An Ed25519 public key must be exactly 32 bytes long"));return r}get rawKey(){return x(this,ws)}get derKey(){return x(this,Es)}toDer(){return this.derKey}toRaw(){return this.rawKey}};ws=new WeakMap,Es=new WeakMap,Hr.RAW_KEY_LENGTH=32;var Wo=Hr;var _a=class{constructor(){this.observers=[]}subscribe(t){this.observers.push(t)}unsubscribe(t){this.observers=this.observers.filter(r=>r!==t)}notify(t,...r){this.observers.forEach(n=>n(t,...r))}},Jo=class extends _a{constructor(){super()}print(t,...r){this.notify({message:t,level:"info"},...r)}warn(t,...r){this.notify({message:t,level:"warn"},...r)}error(t,r,...n){this.notify({message:t,level:"error",error:r},...n)}};var we,_s,vs,Bs,Ts,Ss,Is,As,In,ti=class ti{constructor(t=ti.default){k(this,we);k(this,_s);k(this,vs);k(this,Bs);k(this,Ts);k(this,Ss);k(this,Is);k(this,As);k(this,In,0);let{initialInterval:r=500,randomizationFactor:n=.5,multiplier:s=1.5,maxInterval:o=6e4,maxElapsedTime:i=9e5,maxIterations:a=10,date:c=Date}=t;U(this,we,r),U(this,_s,n),U(this,vs,s),U(this,Bs,o),U(this,As,c),U(this,Ts,c.now()),U(this,Ss,i),U(this,Is,a)}get ellapsedTimeInMsec(){return x(this,As).now()-x(this,Ts)}get currentInterval(){return x(this,we)}get count(){return x(this,In)}get randomValueFromInterval(){let t=x(this,_s)*x(this,we),r=x(this,we)-t,n=x(this,we)+t;return Math.random()*(n-r)+r}incrementCurrentInterval(){return U(this,we,Math.min(x(this,we)*x(this,vs),x(this,Bs))),Pa(this,In)._++,x(this,we)}next(){return this.ellapsedTimeInMsec>=x(this,Ss)||x(this,In)>=x(this,Is)?null:(this.incrementCurrentInterval(),this.randomValueFromInterval)}};we=new WeakMap,_s=new WeakMap,vs=new WeakMap,Bs=new WeakMap,Ts=new WeakMap,Ss=new WeakMap,Is=new WeakMap,As=new WeakMap,In=new WeakMap,ti.default={initialInterval:500,randomizationFactor:.5,multiplier:1.5,maxInterval:6e4,maxElapsedTime:9e5,maxIterations:10,date:Date};var Qo=ti;var ql=5*60*1e3;function Yu(){return $l(Fl(Dl(),1e3),kl(1e3,1.2),Ml(ql))}function Dl(){let e=!0;return async()=>e?(e=!1,!0):!1}function Fl(e,t){return async(r,n,s)=>{if(await e(r,n,s))return new Promise(o=>setTimeout(o,t))}}function Ml(e){let t=Date.now()+e;return async(r,n,s)=>{if(Date.now()>t)throw rt.fromCode(new Rr(`Request timed out after ${e} msec`,n,s))}}function kl(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function $l(...e){return async(t,r,n)=>{for(let s of e)await s(t,r,n)}}var Xu={preSignReadStateRequest:!1};function Wu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function va(e,t){return e!==null&&typeof e=="object"&&Wu(e,t)}function Ll(e,t){return Wu(e,t)&&typeof e[t]=="function"}function zu(e){return va(e,"body")&&va(e.body,"content")&&e.body.content.request_type===Mr.ReadState&&va(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&Ll(e.body.content.ingress_expiry,"toHash")}async function ei(e,t,r,n={}){var d,u;let s=[z("request_status"),r],o,i;if(((d=n.preSignReadStateRequest)!=null?d:!1)?(i=await Vl({paths:[s],agent:e,pollingOptions:n}),o=await e.readState(t,{paths:[s]},void 0,i)):o=await e.readState(t,{paths:[s]}),e.rootKey==null)throw St.fromCode(new le);let c=await re.create({certificate:o.certificate,rootKey:e.rootKey,principal:{canisterId:t},blsVerify:n.blsVerify,agent:e}),f=Ct(c.lookup_path([...s,z("status")])),l;switch(typeof f=="undefined"?l=Zt.Unknown:l=new TextDecoder().decode(f),l){case Zt.Replied:return{reply:Ct(c.lookup_path([...s,"reply"])),certificate:c,rawCertificate:o.certificate};case Zt.Received:case Zt.Unknown:case Zt.Processing:{let h=(u=n.strategy)!=null?u:Yu();return await h(t,r,l),ei(e,t,r,{...n,strategy:h,request:i})}case Zt.Rejected:throw ce.fromCode(jo(c,s,r));case Zt.Done:throw it.fromCode(new eo(r))}throw Xt}async function Vl(e){var o;let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&zu(n.request))return n.request;let s=await((o=r.createReadStateRequest)==null?void 0:o.call(r,{paths:t},void 0));if(!zu(s))throw J.fromCode(new fo(s));return s}var Sa=60*1e3,jl=1e6,Hl=0,Kl="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var Gl="ic0.app",Zl=".ic0.app",Yl="icp0.io",zl=".icp0.io",Xl="icp-api.io",Wl=".icp-api.io",Ba=200,Ju=202,Jl=404;function Ql(e){let t;if(e!==void 0)!e.match(/^[a-z]+:/)&&typeof window!="undefined"?t=new URL(`${window.location.protocol}//${e}`):t=new URL(e);else{let r=["ic0.app","icp0.io","127.0.0.1","localhost"],n=[".github.dev",".gitpod.io"],s=typeof window!="undefined"?window.location:void 0,o=s==null?void 0:s.hostname,i;o&&typeof o=="string"&&(n.some(a=>o.endsWith(a))?i=o:i=r.find(a=>o.endsWith(a))),s&&i?t=new URL(`${s.protocol}//${i}${s.port?`:${s.port}`:""}`):t=new URL("https://icp-api.io")}return t.toString()}var xr,wr,Ee,Je,Er,On,Yt,ne,Zr,Rn,se,Re,_r,_e,Yr,Z,tf,vr,Br,zr,Tr,ef,rf,Cs,An,Nn,ri,Ia,Kr,Cn,nf,sf,Gr=class Gr{constructor(t={}){k(this,Z);k(this,xr);k(this,wr);k(this,Ee);k(this,Je);k(this,Er);k(this,On);k(this,Yt);k(this,ne);k(this,Zr);k(this,Rn);k(this,se);k(this,Re);k(this,_r);k(this,_e);k(this,Yr);k(this,vr);k(this,Br);k(this,zr);k(this,Tr);k(this,Nn);var s,o,i,a;if(U(this,xr,null),U(this,wr,!1),U(this,Ee,Hl),U(this,Je,!1),U(this,Er,null),U(this,On,!1),this._isAgent=!0,this.config={},this.log=new Jo,U(this,vr,[]),U(this,Br,[]),U(this,zr,new Map),U(this,Tr,!0),U(this,Nn,(c,f)=>{if(x(this,Tr)===!1)return c;let{status:l,signatures:d=[],requestId:u}=c,h=f.size;if(d.length>h)throw rt.fromCode(new oo(d.length,h));for(let p of d){let{timestamp:m,identity:g}=p,y=$.fromUint8Array(g).toText(),w;if(l===Qe.Replied){let{reply:S}=c;w=Wn({status:l,reply:S,timestamp:BigInt(m),request_id:u})}else if(l===Qe.Rejected){let{reject_code:S,reject_message:C,error_code:_}=c;w=Wn({status:l,reject_code:S,reject_message:C,error_code:_,timestamp:BigInt(m),request_id:u})}else throw it.fromCode(new vt(`Unknown status: ${l}`));let b=K(kc,w),v=f.get(y);if(!v)throw rt.fromCode(new ao);let T=Wo.fromDer(v).rawKey;if(!Dt.verify(p.signature,b,T))throw Mt.fromCode(new co(y))}return c}),this.config=t,t.fetch)U(this,ne,t.fetch);else{let c=globalThis.fetch;if(typeof c!="function")throw J.fromCode(new no);U(this,ne,c.bind(globalThis))}U(this,Zr,t.fetchOptions),U(this,Rn,t.callOptions),U(this,wr,(s=t.shouldFetchRootKey)!=null?s:!1),U(this,On,(o=t.shouldSyncTime)!=null?o:!1),t.rootKey?this.rootKey=t.rootKey:x(this,wr)?this.rootKey=null:this.rootKey=Bt(Kl);let r=Ql(t.host);this.host=new URL(r),this.host.hostname.endsWith(Zl)?this.host.hostname=Gl:this.host.hostname.endsWith(zl)?this.host.hostname=Yl:this.host.hostname.endsWith(Wl)&&(this.host.hostname=Xl),t.verifyQuerySignatures!==void 0&&U(this,Tr,t.verifyQuerySignatures),U(this,Yr,(i=t.subnetNodeKeyExpirableStore)!=null?i:Ku({dbName:`icp-sdk-${this.host.host}`,storeName:"subnetNodeKeys",expirationTime:5*Sa})),U(this,Re,(a=t.retryTimes)!=null?a:3);let n=()=>new Qo({maxIterations:x(this,Re)});if(U(this,_r,t.backoffStrategy||n),t.credentials){let{name:c,password:f}=t.credentials;U(this,se,`${c}${f?`:${f}`:""}`)}if(U(this,Yt,Promise.resolve(t.identity||new hn)),t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes>5)throw J.fromCode(new Se("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw J.fromCode(new Se("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));U(this,_e,t.ingressExpiryInMinutes||5),this.addTransform("update",Fi(ss)),t.useQueryNonces&&this.addTransform("query",Fi(ss)),t.logToConsole&&this.log.subscribe(c=>{c.level==="error"?console.error(c.message):c.level==="warn"?console.warn(c.message):console.log(c.message)})}static createSync(t={}){return new this({...t})}static async create(t={}){var n;let r=Gr.createSync(t);return await Y(n=r,Z,Kr).call(n),r}static async from(t){var r;try{return"config"in t?await Gr.create(t.config):await Gr.create({fetch:t._fetch,fetchOptions:t._fetchOptions,callOptions:t._callOptions,host:t._host.toString(),identity:(r=t._identity)!=null?r:void 0})}catch(n){throw J.fromCode(new so)}}isLocal(){let t=this.host.hostname;return t==="127.0.0.1"||t.endsWith("127.0.0.1")}addTransform(t,r,n=r.priority||0){if(t==="update"){let s=x(this,Br).findIndex(o=>(o.priority||0)<n);x(this,Br).splice(s>=0?s:x(this,Br).length,0,Object.assign(r,{priority:n}))}else if(t==="query"){let s=x(this,vr).findIndex(o=>(o.priority||0)<n);x(this,vr).splice(s>=0?s:x(this,vr).length,0,Object.assign(r,{priority:n}))}}async getPrincipal(){if(!x(this,Yt))throw St.fromCode(new nr);return(await x(this,Yt)).getPrincipal()}async call(t,r,n){var y;let s=(y=r.callSync)!=null?y:!0,o=await(n!=null?n:x(this,Yt));if(!o)throw St.fromCode(new nr);let i=$.from(t),a=r.effectiveCanisterId?$.from(r.effectiveCanisterId):i;await Y(this,Z,Kr).call(this,a);let c=o.getPrincipal(),f=Ta(x(this,_e),x(this,Ee)),l={request_type:Io.Call,canister_id:i,method_name:r.methodName,arg:r.arg,sender:c,ingress_expiry:f},d=await this._transform({request:{body:null,method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Call,body:l}),u;r!=null&&r.nonce?u=h(r.nonce):d.body.nonce?u=h(d.body.nonce):u=void 0,l.nonce=u;function h(w){return Object.assign(w,{__nonce__:void 0})}d=await o.transformRequest(d);let p=To(d.body),m=x(this,_r).call(this),g=ln(l);try{let v=s?()=>{let C=new URL(`/api/v4/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,d),x(this,ne).call(this,C,{...x(this,Rn),...d.request,body:p})}:()=>{let C=new URL(`/api/v2/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${C.pathname}" with request:`,d),x(this,ne).call(this,C,{...x(this,Rn),...d.request,body:p})},{responseBodyBytes:T,...I}=await Y(this,Z,An).call(this,{requestFn:v,backoff:m,tries:0}),S=T.byteLength>0?Lt(T):null;return{requestId:g,response:{...I,body:S},requestDetails:l}}catch(w){let b;if(w instanceof Kt){if(w.hasCode(Ln))return this.log.warn("v4 api not supported. Fall back to v2"),this.call(t,{...r,callSync:!1},n);if(w.hasCode(Se)&&!x(this,Je))return await this.syncTime(i),this.call(i,r,n);w.code.requestContext={requestId:g,senderPubKey:d.body.sender_pubkey,senderSignature:d.body.sender_sig,ingressExpiry:d.body.content.ingress_expiry},b=w}else b=it.fromCode(new vt(w));throw this.log.error(`Error while making call: ${b.message}`,b),b}}async update(t,r,n={}){let s=$.from(r.effectiveCanisterId),{requestId:o,response:i,requestDetails:a}=await this.call(t,r),{body:c,...f}=i;if(Fa(c))return Y(this,Z,ef).call(this,c,i,o,s,r.methodName,f,a,n);if(Da(c)&&Y(this,Z,rf).call(this,c,o,s,r.methodName,f),i.status===Ju)return{...await ei(this,s,o,n),requestDetails:a,callResponse:i};let l=new vt(`Unexpected response from call: status ${i.status} with unrecognized body`);throw l.callContext={canisterId:s,methodName:r.methodName,httpDetails:f},it.fromCode(l)}async query(t,r,n){let s=x(this,_r).call(this),o=r.effectiveCanisterId?$.from(r.effectiveCanisterId):$.from(t);await Y(this,Z,Kr).call(this,o),this.log.print(`ecid ${o.toString()}`),this.log.print(`canisterId ${t.toString()}`);let i,a=await(n!=null?n:x(this,Yt));if(!a)throw St.fromCode(new nr);let c=$.from(t),f=a.getPrincipal(),l=Ta(x(this,_e),x(this,Ee)),d={request_type:Mr.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:f,ingress_expiry:l},u=ln(d);i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.Query,body:d}),i=await a.transformRequest(i);let h=To(i.body),p={canister:c.toText(),ecid:o,transformedRequest:i,body:h,requestId:u,backoff:s,tries:0},m=async()=>{let g=await Y(this,Z,Cs).call(this,p);return{requestDetails:d,...g}};try{if(!x(this,Tr))return await m();let[g,y]=await Promise.all([m(),this.fetchSubnetKeys(o)]);try{return x(this,Nn).call(this,g,y)}catch(w){this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),await x(this,Yr).delete(o.toString());let b=await this.fetchSubnetKeys(o);return x(this,Nn).call(this,g,b)}}catch(g){let y;if(g instanceof Kt){if(g.hasCode(Se)&&!x(this,Je))return await this.syncTime(o),this.query(t,r,n);g.code.requestContext={requestId:u,senderPubKey:i.body.sender_pubkey,senderSignature:i.body.sender_sig,ingressExpiry:i.body.content.ingress_expiry},y=g}else y=it.fromCode(new vt(g));throw this.log.error(`Error while making query: ${y.message}`,y),y}}async createReadStateRequest(t,r){await Y(this,Z,Kr).call(this);let n=await(r!=null?r:x(this,Yt));if(!n)throw St.fromCode(new nr);let s=n.getPrincipal(),o=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{}}},endpoint:Ve.ReadState,body:{request_type:Mr.ReadState,paths:t.paths,sender:s,ingress_expiry:Ta(x(this,_e),x(this,Ee))}});return n.transformRequest(o)}async readState(t,r,n,s){await Y(this,Z,Cn).call(this);let o=$.from(t);function i(l){for(let d of l.paths){let[u,h]=d,p=new TextEncoder().encode("request_status");if(qr(u,p))return h}}let a,c;if(s)a=s;else{c=i(r);let l=await x(this,Yt);if(!l)throw St.fromCode(new nr);a=await this.createReadStateRequest(r,l)}let f=new URL(`/api/v3/canister/${o.toString()}/read_state`,this.host);return await Y(this,Z,ri).call(this,f,{canisterId:o},a,c)}async readSubnetState(t,r){var i;await Y(this,Z,Cn).call(this);let n=$.from(t),s=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),o=await this.createReadStateRequest(r,(i=x(this,Yt))!=null?i:void 0);return await Y(this,Z,ri).call(this,s,{subnetId:n},o)}parseTimeFromResponse(t){let r;if(t.certificate){let n=Lt(t.certificate);if(n&&"tree"in n)r=n.tree;else throw rt.fromCode(new sr("Could not decode time from response"));let s=ze(["time"],r);if(s.status!==At.Found)throw rt.fromCode(new fe("Time was not found in the response or was not in its expected format.",s.status));if(!(s.value instanceof Uint8Array)&&!ArrayBuffer.isView(s))throw rt.fromCode(new Ks("Time was not in its expected format."));let o=hr(s.value);return this.log.print("Time from response:",o),this.log.print("Time from response in milliseconds:",o.getTime()),o.getTime()}return this.log.warn("No certificate found in response"),0}async syncTime(t){var r;U(this,Er,(r=x(this,Er))!=null?r:(async()=>{var s;await Y(this,Z,Cn).call(this);let n=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let o=t!=null?t:$.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),i=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(s=this.rootKey)!=null?s:void 0,shouldSyncTime:!1}),a=await Promise.all(Array(3).fill(null).map(async()=>{let f=(await Du({canisterId:o,agent:i,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(f instanceof Date)return f.getTime()},[]));Y(this,Z,Ia).call(this,n,a)}catch(o){let i=o instanceof Kt?o:it.fromCode(new vt(o));throw this.log.error("Caught exception while attempting to sync time",i),i}})()),await x(this,Er).finally(()=>{U(this,Er,null)})}async syncTimeWithSubnet(t){var n;await Y(this,Z,Cn).call(this);let r=Date.now();try{let s=Gr.createSync({identity:new hn,host:this.host.toString(),fetch:x(this,ne),retryTimes:0,rootKey:(n=this.rootKey)!=null?n:void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await Fu({subnetId:t,agent:s,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));Y(this,Z,Ia).call(this,r,o)}catch(s){let o=s instanceof Kt?s:it.fromCode(new vt(s));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}async status(){let t=x(this,se)?{Authorization:`Basic ${btoa(x(this,se))}`}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=x(this,_r).call(this),{responseBodyBytes:s}=await Y(this,Z,An).call(this,{backoff:n,requestFn:()=>x(this,ne).call(this,r,{headers:t,...x(this,Zr)}),tries:0});return Lt(s)}async fetchRootKey(){var t;return U(this,xr,(t=x(this,xr))!=null?t:(async()=>{let r=await this.status();return this.rootKey=r.root_key,this.rootKey})()),await x(this,xr).finally(()=>{U(this,xr,null)})}invalidateIdentity(){U(this,Yt,null)}replaceIdentity(t){U(this,Yt,Promise.resolve(t))}async fetchSubnetKeys(t){let r=$.from(t),n=await x(this,Yr).get(r.toText());if(n)return n;let s=x(this,zr).get(r.toText());if(s)return s;let o=Y(this,Z,sf).call(this,r).finally(()=>{x(this,zr).delete(r.toText())});return x(this,zr).set(r.toText(),o),o}async getSubnetIdFromCanister(t){let r=$.from(t);await Y(this,Z,Kr).call(this,r);let n=await this.readState(r,{paths:[[z("time")]]}),s=await re.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return pa(s.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ve.Call)for(let n of x(this,Br))r=r.then(s=>n(s).then(o=>o||s));else for(let n of x(this,vr))r=r.then(s=>n(s).then(o=>o||s));return r}getTimeDiffMsecs(){return x(this,Ee)}hasSyncedTime(){return x(this,Je)}};xr=new WeakMap,wr=new WeakMap,Ee=new WeakMap,Je=new WeakMap,Er=new WeakMap,On=new WeakMap,Yt=new WeakMap,ne=new WeakMap,Zr=new WeakMap,Rn=new WeakMap,se=new WeakMap,Re=new WeakMap,_r=new WeakMap,_e=new WeakMap,Yr=new WeakMap,Z=new WeakSet,tf=function(){return x(this,_e)*Sa},vr=new WeakMap,Br=new WeakMap,zr=new WeakMap,Tr=new WeakMap,ef=async function(t,r,n,s,o,i,a,c){if(this.rootKey==null)throw St.fromCode(new le);let f=t.certificate,l=await re.create({certificate:f,rootKey:this.rootKey,principal:{canisterId:s},blsVerify:c.blsVerify,agent:this}),d=[z("request_status"),n],u=Ct(l.lookup_path([...d,z("status")])),h=u?new TextDecoder().decode(u):void 0;switch(h){case Zt.Replied:return{reply:Ct(l.lookup_path([...d,"reply"])),certificate:l,rawCertificate:f,requestDetails:a,callResponse:r};case Zt.Rejected:{let p=jo(l,d,n);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},ce.fromCode(p)}case void 0:return this.log.warn(`v4 sync response certificate does not contain request ID ${V(n)} status. Falling back to polling.`),{...await ei(this,s,n,c),requestDetails:a,callResponse:r};default:{let p=new uo(h,n,r,f);throw p.callContext={canisterId:s,methodName:o,httpDetails:i},it.fromCode(p)}}},rf=function(t,r,n,s,o){let{reject_code:i,reject_message:a,error_code:c}=t,f=new to(r,i,a,c);throw f.callContext={canisterId:n,methodName:s,httpDetails:o},ce.fromCode(f)},Cs=async function(t){var y,w;let{ecid:r,transformedRequest:n,body:s,requestId:o,backoff:i,tries:a}=t,c=a===0?0:i.next(),f=new URL(`/api/v3/canister/${r.toString()}/query`,this.host);if(this.log.print(`fetching "${f.pathname}" with tries:`,{tries:a,backoff:i,delay:c}),c===null)throw it.fromCode(new Rr(`Backoff strategy exhausted after ${a} attempts.`,o));c>0&&await new Promise(b=>setTimeout(b,c));let l;try{this.log.print(`fetching "${f.pathname}" with request:`,n),l=await x(this,ne).call(this,f,{...x(this,Zr),...n.request,body:s})}catch(b){if(a<x(this,Re))return this.log.warn(`Caught exception while attempting to make query:
|
||
${b}
|
||
Retrying query.`),await Y(this,Z,Cs).call(this,{...t,tries:a+1});throw Mn.fromCode(new Vn(b))}let d=Mi(l.headers);if(l.status!==Ba){let b=await l.text();if(Qu(b))throw J.fromCode(new Se(b,x(this,_e)));if(a<x(this,Re))return await Y(this,Z,Cs).call(this,{...t,tries:a+1});throw rt.fromCode(new $n(l.status,l.statusText,d,b))}let h={...Lt(dn(await l.arrayBuffer())),httpDetails:{ok:l.ok,status:l.status,statusText:l.statusText,headers:d},requestId:o};if(!x(this,Tr))return h;let p=(w=(y=h.signatures)==null?void 0:y[0])==null?void 0:w.timestamp;if(!p)throw rt.fromCode(new io("Timestamp not found in query response. This suggests a malformed or malicious response."));let m=Number(BigInt(p)/BigInt(jl));if(Date.now()+x(this,Ee)-m>x(this,Z,tf)){if(a<x(this,Re))return this.log.warn("Timestamp is older than the max ingress expiry. Retrying query.",{requestId:o,signatureTimestampMs:m}),await this.syncTime(r),await Y(this,Z,Cs).call(this,{...t,tries:a+1});throw Mt.fromCode(new Ws(x(this,_e),o,a))}return h},An=async function(t){let{requestFn:r,backoff:n,tries:s}=t,o=s===0?0:n.next();if(o===null)throw rt.fromCode(new Rr(`Retry strategy exhausted after ${s} attempts.`));o>0&&await new Promise(l=>setTimeout(l,o));let i,a=new Uint8Array;try{i=await r(),i.status===Ba&&(a=dn(await i.clone().arrayBuffer()))}catch(l){if(s<x(this,Re))return this.log.warn(`Caught exception while attempting to make request:
|
||
${l}
|
||
Retrying request.`),await Y(this,Z,An).call(this,{requestFn:r,backoff:n,tries:s+1});throw Mn.fromCode(new Vn(l))}let c=Mi(i.headers);if(i.status===Ba||i.status===Ju)return{ok:i.ok,status:i.status,statusText:i.statusText,responseBodyBytes:a,headers:c};let f=await i.text();if(i.status===Jl&&i.url.includes("api/v4"))throw rt.fromCode(new Ln);if(Qu(f))throw J.fromCode(new Se(f,x(this,_e)));if(s<x(this,Re))return await Y(this,Z,An).call(this,{requestFn:r,backoff:n,tries:s+1});throw rt.fromCode(new $n(i.status,i.statusText,c,f))},Nn=new WeakMap,ri=async function(t,r,n,s){let o=x(this,_r).call(this);try{let{responseBodyBytes:i}=await Y(this,Z,An).call(this,{requestFn:()=>x(this,ne).call(this,t,{...x(this,Zr),...n.request,body:To(n.body)}),backoff:o,tries:0});return Lt(i)}catch(i){let a;if(i instanceof Kt){if(i.hasCode(Se)&&!x(this,Je)){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw Xt;return await Y(this,Z,ri).call(this,t,r,n,s)}i.code.requestContext={requestId:s!=null?s:ln(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=i}else a=it.fromCode(new vt(i));throw this.log.error(`Error while making read state: ${a.message}`,a),a}},Ia=function(t,r){let n=r.reduce((s,o)=>typeof o=="number"&&o>s?o:s,0);n>0&&(U(this,Ee,n-t),U(this,Je,!0),this.log.notify({message:`Syncing time: offset of ${x(this,Ee)}`,level:"info"}))},Kr=async function(t){await Promise.all([Y(this,Z,Cn).call(this),Y(this,Z,nf).call(this,t)])},Cn=async function(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&x(this,wr))await this.fetchRootKey();else throw St.fromCode(new le(x(this,wr)))},nf=async function(t){x(this,On)&&!this.hasSyncedTime()&&await this.syncTime(t)},sf=async function(t){await Y(this,Z,Kr).call(this,t);let r=this.rootKey,n=await this.readState(t,{paths:[[z("subnet")]]}),s=await re.create({certificate:n.certificate,rootKey:r,principal:{canisterId:t},agent:this});if(!s.cert.delegation){let a=$.selfAuthenticating(r);if(!la({canisterId:t,subnetId:a,tree:s.cert.tree}))throw Mt.fromCode(new Or(t,a))}let o=pa(s.cert,r),i=Bn(s.cert,o);return await x(this,Yr).set(t.toText(),i),i};var Xr=Gr;function Ta(e,t){let r=e*Sa;return Fr.fromDeltaInMilliseconds(r,t)}function Qu(e){return e.includes("Invalid request expiry: ")}var zt=Symbol.for("ic-agent-metadata"),ni=class e{static agentOf(t){return t[zt].config.agent}static interfaceOf(t){return t[zt].service}static canisterIdOf(t){return $.from(t[zt].config.canisterId)}static createActorClass(t,r){let n=t({IDL:cr});class s extends e{constructor(i){if(!i.canisterId)throw J.fromCode(new jn(i.canisterId));let a=typeof i.canisterId=="string"?$.fromText(i.canisterId):i.canisterId;super({config:{...of,...i,canisterId:a},service:n});for(let[c,f]of n._fields)r!=null&&r.httpDetails&&f.annotations.push(Aa),r!=null&&r.certificate&&f.annotations.push(af),this[c]=th(this,c,f,i.blsVerify)}}return s}static createActor(t,r){if(!r.canisterId)throw J.fromCode(new jn(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[zt]=Object.freeze(t)}};function Pn(e,t){let r=cr.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var of={pollingOptions:Xu,queryStrategy:"query"},Aa="http-details",af="certificate";function th(e,t,r,n){let s,o=r.annotations.includes("query")||r.annotations.includes("composite_query"),i=e[zt].config.queryStrategy;o&&i==="query"?s=async(c,...f)=>{var m,g;c={...c,...(g=(m=e[zt].config).queryTransform)==null?void 0:g.call(m,t,f,{...e[zt].config,...c})};let l=c.agent||e[zt].config.agent||new Xr,d=$.from(c.canisterId||e[zt].config.canisterId),u=cr.encode(r.argTypes,f),h=await l.query(d,{methodName:t,arg:u,effectiveCanisterId:c.effectiveCanisterId}),p={...h.httpDetails,requestDetails:h.requestDetails};switch(h.status){case Qe.Rejected:{let y=new Qs(h.requestId,h.reject_code,h.reject_message,h.error_code,h.signatures);throw y.callContext={canisterId:d,methodName:t,httpDetails:p},ce.fromCode(y)}case Qe.Replied:return r.annotations.includes(Aa)?{httpDetails:p,result:Pn(r.retTypes,h.reply.arg)}:Pn(r.retTypes,h.reply.arg)}}:s=async(c,...f)=>{var C,_;c={...c,...(_=(C=e[zt].config).callTransform)==null?void 0:_.call(C,t,f,{...e[zt].config,...c})};let l=c.agent||e[zt].config.agent||Xr.createSync(),{canisterId:d,effectiveCanisterId:u,pollingOptions:h}={...of,...e[zt].config,...c},p=$.from(d),m=u!==void 0?$.from(u):p,g=cr.encode(r.argTypes,f),y,w,b,v;try{({reply:y,certificate:w,callResponse:b,requestDetails:v}=await l.update(p,{methodName:t,arg:g,effectiveCanisterId:m,nonce:c.nonce},{...h,blsVerify:n}))}catch(A){if(A instanceof ce){let q=Object.create(Object.getPrototypeOf(A.code),Object.getOwnPropertyDescriptors(A.code));throw q.callContext={...A.code.callContext,canisterId:p,methodName:t},ce.fromCode(q)}throw A}let T=r.annotations.includes(Aa),I=r.annotations.includes(af),S={...b,requestDetails:v};return T&&I?{httpDetails:S,certificate:w,result:Pn(r.retTypes,y)}:I?{certificate:w,result:Pn(r.retTypes,y)}:T?{httpDetails:S,result:Pn(r.retTypes,y)}:Pn(r.retTypes,y)};let a=(...c)=>s({},...c);return a.withOptions=c=>(...f)=>s(c,...f),a}function cf(e){return e!==null&&typeof e=="object"}var Ns,Ps,Wr=class Wr{constructor(t){k(this,Ns);k(this,Ps);if(t.byteLength!==Wr.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");U(this,Ns,t),U(this,Ps,Wr.derEncode(t))}static from(t){if(typeof t=="string"){let r=Bt(t);return this.fromRaw(r)}if(cf(t)){let r=t;if(cf(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(sn(n.buffer))}if(r instanceof ArrayBuffer)return this.fromRaw(sn(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new Wr(t)}static fromDer(t){return new Wr(this.derDecode(t))}static derEncode(t){let r=zo(t,Sn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Xo(t,Sn);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}get rawKey(){return x(this,Ns)}get derKey(){return x(this,Ps)}toDer(){return this.derKey}toRaw(){return this.rawKey}};Ns=new WeakMap,Ps=new WeakMap,Wr.RAW_KEY_LENGTH=32;var Os=Wr,Jr,Qr,Un=class Un extends vo{constructor(r,n){super();k(this,Jr);k(this,Qr);U(this,Jr,Os.from(r)),U(this,Qr,n)}static generate(r){if(r&&r.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");r||(r=Dt.utils.randomPrivateKey()),sc(r,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let n=new Uint8Array(32);for(let o=0;o<32;o++)n[o]=r[o];let s=Dt.getPublicKey(n);return Un.fromKeyPair(s,n)}static fromParsedJson(r){let[n,s]=r;return new Un(Os.fromDer(Bt(n)),Bt(s))}static fromJSON(r){let n=JSON.parse(r);if(Array.isArray(n)){if(typeof n[0]=="string"&&typeof n[1]=="string")return this.fromParsedJson([n[0],n[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(r)}`)}static fromKeyPair(r,n){return new Un(Os.fromRaw(r),n)}static fromSecretKey(r){let n=Dt.getPublicKey(r);return Un.fromKeyPair(n,r)}toJSON(){return[V(x(this,Jr).toDer()),V(x(this,Qr))]}getKeyPair(){return{secretKey:x(this,Qr),publicKey:x(this,Jr)}}getPublicKey(){return x(this,Jr)}async sign(r){let n=Dt.sign(r,x(this,Qr).slice(0,32));return Object.defineProperty(n,"__signature__",{enumerable:!1,value:void 0}),n}static verify(r,n,s){let[o,i,a]=[r,n,s].map(c=>(typeof c=="string"&&(c=Bt(c)),sn(c)));return Dt.verify(o,i,a)}};Jr=new WeakMap,Qr=new WeakMap;var Rs=Un;var si=class{constructor(t){this.keyIdentity=null;this.boundUserPrincipal=null;this.storage=t}getOrCreateIdentity(){if(this.keyIdentity)return this.keyIdentity;let t=this.storage.getBindingData();if(t)try{let n=JSON.parse(t);typeof n.identity=="string"&&(this.keyIdentity=Rs.fromJSON(n.identity)),typeof n.boundUser=="string"&&(this.boundUserPrincipal=n.boundUser)}catch(r){}return this.keyIdentity||(this.keyIdentity=Rs.generate(),this.persist()),this.keyIdentity}getPrincipal(){return this.keyIdentity?this.keyIdentity.getPrincipal():null}getPrincipalText(){let t=this.getPrincipal();return t?t.toText():null}isBound(){return this.boundUserPrincipal!==null}getBoundUser(){return this.boundUserPrincipal}persistBoundUser(t){this.boundUserPrincipal=t,this.persist()}clearBinding(){this.boundUserPrincipal=null,this.persist()}getIdentity(){return this.keyIdentity}persist(){let t=JSON.stringify({identity:this.keyIdentity?JSON.stringify(this.keyIdentity.toJSON()):null,boundUser:this.boundUserPrincipal});this.storage.setBindingData(t)}};var eh=({IDL:e})=>e.Service({requestPluginBinding:e.Func([e.Principal,e.Principal],[],[]),getPendingPluginBindings:e.Func([],[e.Vec(e.Principal)],["query"]),approvePluginBinding:e.Func([e.Principal],[],[]),getPluginBindingStatus:e.Func([],[e.Bool],["query"]),getBoundPluginKeys:e.Func([],[e.Vec(e.Principal)],["query"]),revokePluginBinding:e.Func([e.Principal],[],[]),getMyPrincipal:e.Func([],[e.Principal],["query"]),storeNotesData:e.Func([e.Text],[],[]),getNotesData:e.Func([],[e.Opt(e.Text)],["query"]),pushToVault:e.Func([e.Text],[],[]),hasPendingVaultPush:e.Func([],[e.Bool],["query"]),getAndClearPendingVaultPush:e.Func([],[e.Opt(e.Text)],[]),initializeAccessControl:e.Func([],[],[]),isCallerApproved:e.Func([],[e.Bool],["query"]),requestApproval:e.Func([],[],[]),getCallerUserProfile:e.Func([],[e.Opt(e.Record({name:e.Text,socialUrl:e.Opt(e.Text)}))],["query"]),saveCallerUserProfile:e.Func([e.Record({name:e.Text,socialUrl:e.Opt(e.Text)})],[],[])});function rh(e){return typeof e=="object"&&e!==null&&typeof e.toText=="function"}function uf(e){return rh(e)?e.toText():String(e)}function nh(){try{let e=window.document.cookie.split(";");for(let t of e){let[r,n]=t.trim().split("=");if(r==="IC_ROOT_KEY"&&n)return Uint8Array.from(atob(n))}}catch(e){}}var oi=class{constructor(t,r){this.agent=null;this.actor=null;this.canisterId=t,this.host=r}async createAuthenticatedActor(t){let r=nh();this.agent=await Xr.create({identity:t,host:this.host,rootKey:r}),!r&&this.host.includes("localhost")&&await this.agent.fetchRootKey(),this.actor=ni.createActor(eh,{agent:this.agent,canisterId:$.fromText(this.canisterId)})}getActor(){return this.actor}updateConfig(t,r){this.canisterId=t,this.host=r,this.actor=null,this.agent=null}async requestPluginBinding(t,r){if(!this.actor)throw new Error("Actor not initialized");let n=$.fromText(t),s=$.fromText(r);await this.actor.requestPluginBinding(n,s)}async getPendingPluginBindings(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getPendingPluginBindings()).map(uf)}async approvePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.approvePluginBinding($.fromText(t))}async getPluginBindingStatus(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getPluginBindingStatus()}async getBoundPluginKeys(){if(!this.actor)throw new Error("Actor not initialized");return(await this.actor.getBoundPluginKeys()).map(uf)}async revokePluginBinding(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.revokePluginBinding($.fromText(t))}async storeNotesData(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.storeNotesData(t)}async getNotesData(){if(!this.actor)throw new Error("Actor not initialized");let t=await this.actor.getNotesData();return t!=null?t:null}async isCallerApproved(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.isCallerApproved()}async initializeAccessControl(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.initializeAccessControl()}async requestApproval(){if(!this.actor)throw new Error("Actor not initialized");await this.actor.requestApproval()}async saveUserProfile(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.saveCallerUserProfile({name:t,socialUrl:null})}async getUserProfile(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.getCallerUserProfile()}async pushToVault(t){if(!this.actor)throw new Error("Actor not initialized");await this.actor.pushToVault(t)}async hasPendingVaultPush(){if(!this.actor)throw new Error("Actor not initialized");return await this.actor.hasPendingVaultPush()}async getAndClearPendingVaultPush(){if(!this.actor)throw new Error("Actor not initialized");let t=await this.actor.getAndClearPendingVaultPush();return t!=null?t:null}};var ai=require("obsidian"),ii=class{constructor(t,r){this.vault=t,this.agent=r}async uploadFolder(t,r){try{r==null||r({totalFiles:0,processedFiles:0,currentFile:"Scanning folder structure...",stage:"scanning"});let n=await this.scanFolder(t),s=this.countFiles(n);r==null||r({totalFiles:s,processedFiles:0,currentFile:"Uploading to Hyvmind...",stage:"uploading"});let o=JSON.stringify({folders:[n]});return await this.agent.storeNotesData(o),r==null||r({totalFiles:s,processedFiles:s,currentFile:"Done",stage:"uploading"}),{success:!0,message:`Imported ${s} files into Hyvmind notes`}}catch(n){return{success:!1,message:`Upload failed: ${n instanceof Error?n.message:String(n)}`}}}async scanFolder(t){let r=[];for(let n of t.children)if(n instanceof ai.TFolder){let s=await this.scanFolder(n);r.push(s)}else if(n instanceof ai.TFile&&n.extension==="md"){let s=await this.vault.cachedRead(n);r.push({name:n.name,content:s})}return{name:t.name||"",folders:r.length>0?r:void 0}}countFiles(t){var n;let r=0;for(let s of(n=t.folders)!=null?n:[])s.content!==void 0&&r++,r+=this.countFiles(s);return r}};var Ca=require("obsidian"),ci=class{constructor(t,r){this.vault=t,this.agent=r}async processPendingPush(t,r){let n=JSON.parse(t);if(!n.folders||n.folders.length===0)return;try{await this.vault.adapter.mkdir((0,Ca.normalizePath)(r))}catch(o){}let s={processed:0};for(let o of n.folders)await this.createItem(r,o,s,0)}async createItem(t,r,n,s,o){let i=`${t}/${r.name}`;if(r.content!==void 0){try{await this.vault.create(i,r.content)}catch(a){}n.processed++,o==null||o({totalFiles:s,processedFiles:n.processed,currentFile:i,stage:"downloading"})}if(r.folders!==void 0){try{await this.vault.adapter.mkdir((0,Ca.normalizePath)(i))}catch(a){}for(let a of r.folders)await this.createItem(i,a,n,s,o)}}};var ui=class{constructor(t){this.isConnected=!1;this.principal=null;this.element=t.createSpan({cls:"hyvmind-status-bar"}),this.updateDisplay()}setConnected(t){this.isConnected=!0,this.principal=t,this.updateDisplay()}setDisconnected(){this.isConnected=!1,this.principal=null,this.updateDisplay()}updateDisplay(){if(this.element.empty(),this.isConnected&&this.principal){let t=`${this.principal.slice(0,8)}...${this.principal.slice(-4)}`;this.element.setText(`\u{1F7E2} Hyvmind: ${t}`),this.element.title=`Connected as ${this.principal}`,this.element.addClass("hyvmind-status-connected"),this.element.removeClass("hyvmind-status-disconnected")}else this.element.setText("\u26AA Hyvmind: not connected"),this.element.title="Click 'authenticate in settings' command to authenticate",this.element.addClass("hyvmind-status-disconnected"),this.element.removeClass("hyvmind-status-connected")}getElement(){return this.element}isCurrentlyConnected(){return this.isConnected}};var ff=require("obsidian"),fi=class extends ff.Modal{constructor(t,r,n){super(t),this.titleText=n!=null?n:"Hyvmind Sync",this.subtitleText=r}onOpen(){let{contentEl:t}=this;t.empty(),t.createEl("h2",{text:this.titleText}),t.createEl("p",{text:this.subtitleText}),this.statusEl=t.createEl("p",{text:"Initializing...",cls:"hyvmind-upload-status"}),this.statusEl.setAttribute("aria-live","polite"),this.statusEl.setAttribute("aria-atomic","true"),this.progressEl=t.createDiv({cls:"hyvmind-progress-bar"});let r=this.progressEl.createDiv({cls:"hyvmind-progress-fill"});r.setAttribute("role","progressbar"),r.setAttribute("aria-valuenow","0"),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("aria-label","Sync progress")}updateProgress(t){this.statusEl.setText(`${t.stage}: ${t.currentFile}`);let r=this.progressEl.querySelector(".hyvmind-progress-fill");if(r&&t.totalFiles>0){let n=t.processedFiles/t.totalFiles*100;r.style.setProperty("--progress-width",`${n}%`),r.setAttribute("aria-valuenow",Math.round(n).toString())}}onClose(){let{contentEl:t}=this;t.empty()}};var Oa=class{constructor(t){this.plugin=t}getBindingData(){return this.plugin.settings.bindingData||null}setBindingData(t){this.plugin.settings.bindingData=t,this.plugin.saveSettings()}clearBindingData(){this.plugin.settings.bindingData="",this.plugin.settings.principal=null,this.plugin.saveSettings()}},di=class extends Ft.Plugin{async onload(){await this.loadSettings();let t=new Oa(this);this.binding=new si(t),this.agent=new oi(this.settings.canisterId,this.settings.host),this.uploader=new ii(this.app.vault,this.agent),this.downloader=new ci(this.app.vault,this.agent);let r=this.binding.getOrCreateIdentity();await this.agent.createAuthenticatedActor(r),this.binding.isBound()?this.settings.principal=this.binding.getBoundUser():this.checkBindingStatus(),this.registerInterval(window.setInterval(()=>{this.pollForPushNotes()},3e4)),this.addSettingTab(new Us(this.app,this));let n=this.addStatusBarItem();this.statusBar=new ui(n),this.updateStatusBar(),this.addRibbonIcon("upload-cloud","Hyvmind uploader",()=>{this.showUploadMenu()}),this.addCommand({id:"upload-current-folder",name:"Upload current folder to Hyvmind",checkCallback:s=>{let o=this.app.workspace.getActiveFile();if(o){if(!s){let i=o.parent;i&&this.uploadFolder(i)}return!0}return!1}}),this.registerEvent(this.app.workspace.on("file-menu",(s,o)=>{o instanceof Ft.TFolder&&s.addItem(i=>{i.setTitle("Upload to Hyvmind").setIcon("upload-cloud").onClick(()=>{this.uploadFolder(o)})})}))}onunload(){}async loadSettings(){let t=await this.loadData();this.settings=Object.assign({},Ua,t)}async saveSettings(){await this.saveData(this.settings)}async uploadFolder(t){if(!this.binding.isBound()){new Ft.Notice("Please bind the plugin to your Hyvmind account in settings first");return}let r=new fi(this.app,t.name,"Uploading to Hyvmind");r.open();try{let n=await this.uploader.uploadFolder(t,s=>{r.updateProgress(s)});r.close(),n.success?(new Ft.Notice(`\u2713 ${n.message}`),window.open("https://hyvmind.app","_blank")):new Ft.Notice(`\u2717 ${n.message}`)}catch(n){r.close(),console.error("Upload failed:",n),new Ft.Notice(`Upload failed: ${this.sanitizeForNotice(n instanceof Error?n.message:String(n))}`)}}updateStatusBar(){if(this.binding.isBound()){let t=this.binding.getBoundUser();this.statusBar.setConnected(t?t.slice(0,8):"bound")}else this.statusBar.setDisconnected()}async checkBindingStatus(){if(!this.binding.isBound())try{await this.agent.getPluginBindingStatus()&&this.settings.userPrincipal&&(this.binding.persistBoundUser(this.settings.userPrincipal),this.settings.principal=this.settings.userPrincipal,await this.saveSettings(),this.updateStatusBar(),new Ft.Notice("Plugin binding confirmed!"))}catch(t){}}async pollForPushNotes(){if(this.binding.isBound())try{if(!await this.agent.hasPendingVaultPush())return;let r=await this.agent.getAndClearPendingVaultPush();if(!r)return;await this.downloader.processPendingPush(r,this.settings.importFolderName),new Ft.Notice("New notes synced from Hyvmind")}catch(t){console.error("Polling for pushed notes failed:",t)}}sanitizeForNotice(t){return t.replace(/<[^>]*>/g,"").slice(0,200)}showUploadMenu(){let t=new Ft.Menu;this.binding.isBound()?t.addItem(r=>r.setTitle("Upload current folder").setIcon("upload-cloud").onClick(()=>{let n=this.app.workspace.getActiveFile();n&&n.parent?this.uploadFolder(n.parent):new Ft.Notice("No folder selected")})):t.addItem(r=>r.setTitle("Configure binding in settings").setIcon("settings").onClick(()=>{new Ft.Notice("Please bind the plugin in Hyvmind settings first")})),t.showAtPosition({x:0,y:0})}};
|
||
/*! Bundled license information:
|
||
|
||
@noble/hashes/esm/utils.js:
|
||
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
||
|
||
@noble/curves/esm/utils.js:
|
||
@noble/curves/esm/abstract/modular.js:
|
||
@noble/curves/esm/abstract/curve.js:
|
||
@noble/curves/esm/abstract/weierstrass.js:
|
||
@noble/curves/esm/abstract/bls.js:
|
||
@noble/curves/esm/abstract/tower.js:
|
||
@noble/curves/esm/bls12-381.js:
|
||
@noble/curves/esm/abstract/edwards.js:
|
||
@noble/curves/esm/ed25519.js:
|
||
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
||
*/
|