varsnarkjs=function(A){"use strict";constI=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];functiont(A,I){returnI&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void0:BigInt(A)}consti=t;functiong(A,I){returnBigInt(A)<<BigInt(I)}functione(A,I){returnBigInt(A)>>BigInt(I)}constC=g,n=e;varQ=Object.freeze({__proto__:null,fromString:t,e:i,fromArray:function(A,I){lett=BigInt(0);I=BigInt(I);for(leti=0;i<A.length;i++)t=t*I+BigInt(A[i]);returnt},bitLength:function(A){constt=A.toString(16);return4*(t.length-1)+I[parseInt(t[0],16)]},isNegative:function(A){returnBigInt(A)<BigInt(0)},isZero:function(A){return!A},shiftLeft:g,shiftRight:e,shl:C,shr:n,isOdd:function(A){return(BigInt(A)&BigInt(1))==BigInt(1)},naf:function(A){letI=BigInt(A);constt=[];for(;I;){if(I&BigInt(1)){constA=2-Number(I%BigInt(4));t.push(A),I-=BigInt(A)}elset.push(0);I>>=BigInt(1)}returnt},bits:function(A){letI=BigInt(A);constt=[];for(;I;)I&BigInt(1)?t.push(1):t.push(0),I>>=BigInt(1);returnt},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))thrownewError("Number too big");returnNumber(A)},toArray:function(A,I){constt=[];leti=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;returnt},add:function(A,I){returnBigInt(A)+BigInt(I)},sub:function(A,I){returnBigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){returnBigInt(A)*BigInt(I)},square:function(A){returnBigInt(A)*BigInt(A)},pow:function(A,I){returnBigInt(A)**BigInt(I)},exp:function(A,I){returnBigInt(A)**BigInt(I)},abs:function(A){returnBigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){returnBigInt(A)/BigInt(I)},mod:function(A,I){returnBigInt(A)%BigInt(I)},eq:function(A,I){returnBigInt(A)==BigInt(I)},neq:function(A,I){returnBigInt(A)!=BigInt(I)},lt:function(A,I){returnBigInt(A)<BigInt(I)},gt:function(A,I){returnBigInt(A)>BigInt(I)},leq:function(A,I){returnBigInt(A)<=BigInt(I)},geq:function(A,I){returnBigInt(A)>=BigInt(I)},band:function(A,I){returnBigInt(A)&BigInt(I)},bor:function(A,I){returnBigInt(A)|BigInt(I)},bxor:function(A,I){returnBigInt(A)^BigInt(I)},land:function(A,I){returnBigInt(A)&&BigInt(I)},lor:function(A,I){returnBigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}}),B="undefined"!=typeofglobalThis?globalThis:"undefined"!=typeofwindow?window:"undefined"!=typeofglobal?global:"undefined"!=typeofself?self:{};functionr(A){varI={exports:{}};returnA(I,I.exports),I.exports}varo=r((function(A){varI=function(A){vart=1e7,i=9007199254740992,g=E(i),e="0123456789abcdefghijklmnopqrstuvwxyz",C="function"==typeofBigInt;functionn(A,I,t,i){returnvoid0===A?n[0]:void0!==I&&(10!=+I||t)?O(A,I,t,i):z(A)}functionQ(A,I){this.value=A,this.sign=I,this.isSmall=!1}functionB(A){this.value=A,this.sign=A<0,this.isSmall=!0}functionr(A){this.value=A}functiono(A){return-i<A&&A<i}functionE(A){returnA<1e7?[A]:A<1e14?[A%1e7,Math.floor(A/1e7)]:[A%1e7,Math.floor(A/1e7)%1e7,Math.floor(A/1e14)]}functiona(A){s(A);varI=A.length;if(I<4&&U(A,g)<0)switch(I){case0:return0;case1:returnA[0];case2:returnA[0]+A[1]*t;default:returnA[0]+(A[1]+A[2]*t)*t}returnA}functions(A){for(varI=A.length;0===A[--I];);A.length=I+1}functionh(A){for(varI=newArray(A),t=-1;++t<A;)I[t]=0;returnI}functionf(A){returnA>0?Math.floor(A):Math.ceil(A)}functionw(A,I){vari,g,e=A.length,C=I.length,n=newArray(e),Q=0,B=t;for(g=0;g<C;g++)Q=(i=A[g]+I[g]+Q)>=B?1:0,n[g]=i-Q*B;for(;g<e;)Q=(i=A[g]+Q)===B?1:0,n[g++]=i-Q*B;returnQ>0&&n.push(Q),n}functionD(A,I){returnA.length>=I.length?w(A,I):w(I,A)}functionc(A,I){vari,g,e=A.length,C=newArray(e),n=t;for(g=0;g<e;g++)i=A[g]-n+I,I=Math.floor(i/n),C[g]=i-I*n,I+=1;for(;I>0;)C[g++]=I%n,I=Math.floor(I/n);returnC}functionu(A,I){vari,g,e=A.length,C=I.length,n=newArray(e),Q=0,B=t;for(i=0;i<C;i++)(g=A[i]-Q-I[i])<0?(g+=B,Q=1):Q=0,n[i]=g;for(i=C;i<e;i++){if(!((g=A[i]-Q)<0)){n[i++]=g;break}g+=B,n[i]=g}for(;i<e;i++)n[i]=A[i];returns(n),n}functionl(A,I,i){varg,e,C=A.length,n=newArray(C),r=-I,o=t;for(g=0;g<C;g++)e=A[g]+r,r=Math.floor(e/o),e%=o,n[g]=e<0?e+o:e;return"number"==typeof(n=a(n))?(i&&(n=-n),newB(n)):newQ(n,i)