varsnarkjs=function(A){"use strict";constI=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];functiong(A,I){returnI&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void0:BigInt(A)}constC=g;functionQ(A,I){returnBigInt(A)<<BigInt(I)}functiont(A,I){returnBigInt(A)>>BigInt(I)}consti=Q,B=t;varE=Object.freeze({__proto__:null,fromString:g,e:C,fromArray:function(A,I){letg=0n;I=BigInt(I);for(letC=0;C<A.length;C++)g=g*I+BigInt(A[C]);returng},bitLength:function(A){constg=A.toString(16);return4*(g.length-1)+I[parseInt(g[0],16)]},isNegative:function(A){returnBigInt(A)<0n},isZero:function(A){return!A},shiftLeft:Q,shiftRight:t,shl:i,shr:B,isOdd:function(A){return1n==(1n&BigInt(A))},naf:function(A){letI=BigInt(A);constg=[];for(;I;){if(1n&I){constA=2-Number(I%4n);g.push(A),I-=BigInt(A)}elseg.push(0);I>>=1n}returng},bits:function(A){letI=BigInt(A);constg=[];for(;I;)1n&I?g.push(1):g.push(0),I>>=1n;returng},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))thrownewError("Number too big");returnNumber(A)},toArray:function(A,I){constg=[];letC=BigInt(A);for(I=BigInt(I);C;)g.unshift(Number(C%I)),C/=I;returng},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)}});functione(A,I){returnA(I={exports:{}},I.exports),I.exports}varn=e((function(A){varI=function(A){varg=1e7,C=9007199254740992,Q=h(C),t="function"==typeofBigInt;functioni(A,I,g,C){returnvoid0===A?i[0]:void0!==I&&(10!=+I||g)?P(A,I,g,C):K(A)}functionB(A,I){this.value=A,this.sign=I,this.isSmall=!1}functionE(A){this.value=A,this.sign=A<0,this.isSmall=!0}functione(A){this.value=A}functionn(A){return-C<A&&A<C}functionh(A){returnA<1e7?[A]:A<1e14?[A%1e7,Math.floor(A/1e7)]:[A%1e7,Math.floor(A/1e7)%1e7,Math.floor(A/1e14)]}functiono(A){a(A);varI=A.length;if(I<4&&U(A,Q)<0)switch(I){case0:return0;case1:returnA[0];case2:returnA[0]+A[1]*g;default:returnA[0]+(A[1]+A[2]*g)*g}returnA}functiona(A){for(varI=A.length;0===A[--I];);A.length=I+1}functionr(A){for(varI=newArray(A),g=-1;++g<A;)I[g]=0;returnI}functions(A){returnA>0?Math.floor(A):Math.ceil(A)}functionw(A,I){varC,Q,t=A.length,i=I.length,B=newArray(t),E=0,e=g;for(Q=0;Q<i;Q++)E=(C=A[Q]+I[Q]+E)>=e?1:0,B[Q]=C-E*e;for(;Q<t;)E=(C=A[Q]+E)===e?1:0,B[Q++]=C-E*e;returnE>0&&B.push(E),B}functionf(A,I){returnA.length>=I.length?w(A,I):w(I,A)}functionD(A,I){varC,Q,t=A.length,i=newArray(t),B=g;for(Q=0;Q<t;Q++)C=A[Q]-B+I,I=Math.floor(C/B),i[Q]=C-I*B,I+=1;for(;I>0;)i[Q++]=I%B,I=Math.floor(I/B);returni}functionc(A,I){varg,C,Q=A.length,t=I.length,i=newArray(Q),B=0;for(g=0;g<t;g++)(C=A[g]-B-I[g])<0?(C+=1e7,B=1):B=0,i[g]=C;for(g=t;g<Q;g++){if(!((C=A[g]-B)<0)){i[g++]=C;break}C+=1e7,i[g]=C}for(;g<Q;g++)i[g]=A[g];returna(i),i}functiony(A,I,g){varC,Q,t=A.length,i=newArray(t),e=-I;for(C=0;C<t;C++)Q=A[C]+e,e=Math.floor(Q/1e7),Q%=1e7,i[C]=Q<0?Q+1e7:Q;return"number"==typeof(i=o(i))?(g&&(i=-i),newE(i)):newB(i,g)}functionF(A,I){varg,C,Q,t,i=A.length,B=I.length,E=r(i+B);for(Q=0;Q<i;++Q){t=A[Q];for(vare=0;e<B;++e)g=t*I[e]+E[Q+e],C=Math.floor(g/1e7),E[Q+e]=g-1e7*C,E[Q+e+1]+=C}returna(E),E}functionM(A,I){varC,Q,t=A.length,i=newArray(t),B=g,E=0;for(Q=0;Q<t