@taquito/sapling-wasm 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.node.js","mappings":"uBAAIA,EACAC,EACAC,EACAC,EAEAC,E,mfCLJ,WACA,W,8DCIA,8BACEC,EACAC,EACAC,GAEA,MAAMC,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCACpDI,OACMC,IAAVJ,GACI,IAAAK,oBAAmBL,EAAO,GAAI,QAAS,wCAAwCM,eAC/EF,EAEAG,EAAUC,OAAOC,UACLL,IAAhBD,EACIL,EAAQY,uBAAuBT,EAAYE,GAC3CL,EAAQa,8BAA8BV,IAG5C,MAAO,CACLD,MAAOO,EAAQK,MAAM,EAAG,IACxBC,IAAKN,EAAQK,MAAM,IAEvB,EAEA,kCACEd,EACAC,EACAC,GAEA,MAAMC,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCACpDI,GAAsB,IAAAE,oBAAmBL,EAAO,GAAI,QAAS,wCAAwCM,UAErGC,EAAkBC,OAAOC,KAAKX,EAAQgB,2BAA2Bb,EAAYE,IAEnF,MAAO,CACLH,MAAOO,EAAQK,MAAM,EAAG,IACxBC,IAAKN,EAAQK,MAAM,IAEvB,EAEA,4BAAiCL,GAC/B,OAAOA,aAAmBQ,aAAqCX,IAA1BG,EAAgBP,YAAgDI,IAAxBG,EAAgBM,GAC/F,EAEA,gCACEf,EACAkB,EACAC,GAEA,MAAMC,GAAoB,IAAAhB,YAAWc,EAAK,MAAO,yCAC3CG,GAA4B,IAAAjB,YAAWe,EAAa,MAAO,yCAEjE,OAAOT,OAAOC,KAAKX,EAAQsB,sBAAsBF,EAAWC,GAC9D,EAEA,wCAA6CrB,EAAsBS,GACjE,MAAMc,GAAwB,IAAAnB,YAAWK,EAAS,UAAW,wCAE7D,OAAOC,OAAOC,KAAKX,EAAQwB,8BAA8BD,GAC3D,EAEA,gCAAqCvB,EAAsBS,GACzD,MAAMc,GAAwB,IAAAnB,YAAWK,EAAS,UAAW,wCAE7D,OAAOC,OAAOC,KAAKX,EAAQyB,sBAAsBF,GACnD,EAlEA,c,8DCAA,gCAAqCvB,EAAsB0B,GACzD,MAAMC,GAAoB,IAAAvB,YAAWsB,EAAK,cAAe,wCAEzD,OAAOhB,OAAOC,KAAKX,EAAQ4B,WAAWD,GACxC,EANA,c,8DCEA,gCAAqC3B,EAAsB6B,EAAiCC,GAC1F,MAAMC,GAAU,IAAA3B,YAAWyB,EAAG,IAAK,wCAC7BG,GAAW,IAAA5B,YAAW0B,EAAI,KAAM,wCAEtC,OAAOpB,OAAOC,KAAKX,EAAQiC,aAAaF,EAASC,GACnD,EAPA,c,8DCEA,uBAA4BhC,EAAsBkC,EAAoCC,GACpF,MAAMC,GAAqB,IAAAhC,YAAW8B,EAAM,OAAQ,wCAEpD,OAAOxB,OAAOC,KAAKX,EAAQ0B,IAAIU,EAAYD,GAC7C,EANA,c,6DCEA,wBAA6BnC,EAAsBkC,EAAoCC,GACrF,MAAMC,GAAqB,IAAAhC,YAAW8B,EAAM,OAAQ,wCAEpD,OAAOxB,OAAOC,KAAKX,EAAQC,KAAKmC,EAAYD,GAC9C,EAEA,+BAAoCnC,EAAsB0B,GACxD,MAAMC,GAAoB,IAAAvB,YAAWsB,EAAK,cAAe,wCAEzD,OAAOhB,OAAOC,KAAKX,EAAQqC,YAAYV,GACzC,EAEA,uBAA4B3B,EAAsBC,GAChD,MAAME,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCAE1D,OAAOS,OAAOC,KAAKX,EAAQsC,YAAYnC,GACzC,EAEA,uBAA4BH,EAAsBC,GAChD,MAAME,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCAE1D,OAAOS,OAAOC,KAAKX,EAAQuC,UAAUpC,GACvC,EAxBA,c,8DCEA,kCACEH,EACAwC,EACAC,GAEA,MAAMC,GAA4B,IAAAtC,YAAWoC,EAAa,cAAe,wCACnEG,GAA6B,IAAAvC,YAAWqC,EAAc,eAAgB,wCAE5EzC,EAAQ4C,WAAWF,EAAmBC,EACxC,EAXA,c,8DCEA,oCACE3C,EACA6C,EACAC,EACAC,GAEA,MAAMC,GAA6B,IAAAC,YAAWH,EAAc,eAAgB,kCACtEI,GAAwB,IAAA9C,YAAW2C,EAAS,UAAW,wCAE7D,OAAOrC,OAAOC,KAAKX,EAAQmD,iBAAiBN,EAASG,EAAoBE,GAC3E,EAZA,c,8DCEA,6BACElD,EACAoD,EACA3C,EACA4C,EACAC,GAEA,MAAMC,GAAoB,IAAAnD,YAAWgD,EAAK,aAAc,wCAClDI,GAAuB,IAAApD,YAAWK,EAAS,UAAW,wCACtDgD,GAAsB,IAAAR,YAAWI,EAAO,QAAS,kCACjDK,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAE3CK,EAAsBjD,OAAOC,KAAKX,EAAQ4D,kBAAkBJ,EAAcC,EAAaC,IAE7F,OAAOH,EAAUM,OAAOF,EAC1B,EAjBA,c,8DCEA,sCACE3D,EACA8D,EACAC,EACAC,GAEA,MAAMC,GAAmB,IAAAC,YAAWJ,GAC9BK,GAAoB,IAAA/D,YAAW2D,GAC/BK,GAAoB,IAAAhE,YAAW4D,GAErC,OAAOtD,OAAOC,KAAKX,EAAQqE,WAAWJ,EAAUE,EAAWC,GAC7D,EAbA,c,8DCEA,6BACEpE,EACAC,EACAQ,EACA4C,EACAC,EACAgB,GAEA,MAAMnE,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCACpDsB,GAAwB,IAAAnB,YAAWK,EAAS,UAAW,wCACvDgD,GAAsB,IAAAR,YAAWI,EAAO,QAAS,kCACjDK,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAC3CiB,GAAyB,IAAAtB,YAAWqB,EAAU,WAAY,kCAEhE,OAAO5D,OAAOC,KAAKX,EAAQwE,iBAAiBrE,EAAYoB,EAAekC,EAAaC,EAAWa,GACjG,EAjBA,c,8DCKA,6CACEvE,EACA6C,EACA5C,EACAwE,EACAnB,EACAD,EACAqB,GAEA,MAAMvE,GAAqB,IAAAC,YAAWH,EAAM,aAAc,wCACpD0E,GAAmB,IAAAvE,aACvB,IAAAwE,kBAAiBH,GAAMA,EAAG1D,IAAM0D,EAChC,cACA,iEAEIf,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAC3CG,GAAsB,IAAAR,YAAWI,EAAO,QAAS,kCACjDwB,OAA0CvE,IAAToE,GAAqB,IAAAtE,YAAWsE,EAAM,OAAQ,6CAA0CpE,EAEzHwE,EAA4BpE,OAAOC,UACxBL,IAAfuE,EACI7E,EAAQ+E,kCAAkClC,EAAS1C,EAAYwE,EAAUjB,EAAWD,EAAaoB,GACjG7E,EAAQgF,0BAA0BnC,EAAS1C,EAAYwE,EAAUjB,EAAWD,IAGlF,MAAO,CACLwB,GAAIH,EAAkBhE,MAAM,EAAG,IAC/BoE,GAAIJ,EAAkBhE,MAAM,GAAI,IAChCqE,IAAKL,EAAkBhE,MAAM,GAAI,IACjCsE,KAAMN,EAAkBhE,MAAM,GAAI,KAClCuE,KAAMP,EAAkBhE,MAAM,IAAK,KACnCwE,MAAOR,EAAkBhE,MAAM,IAAK,KAExC,EAEA,4CACEd,EACA6C,EACA4B,EACAnB,EACAiC,EACAlC,GAEA,MAAMsB,GAAmB,IAAAvE,aACvB,IAAAwE,kBAAiBH,GAAMA,EAAG1D,IAAM0D,EAChC,cACA,iEAEIf,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAC3CkC,GAAoB,IAAApF,YAAWmF,EAAK,MAAO,wCAC3C9B,GAAsB,IAAAR,YAAWI,EAAO,QAAS,kCAEjDyB,EAA4BpE,OAAOC,KAAKX,EAAQyF,yBAAyB5C,EAAS8B,EAAUjB,EAAW8B,EAAW/B,IAExH,MAAO,CACLwB,GAAIH,EAAkBhE,MAAM,EAAG,IAC/BoE,GAAIJ,EAAkBhE,MAAM,GAAI,IAChCwE,MAAOR,EAAkBhE,MAAM,GAAI,KAEvC,EAEA,oCACEd,EACAmB,EACAoE,GAEA,MAAMlE,GAA4B,IAAAjB,YAAWe,EAAa,cAAe,wCACnEqE,GAAoB,IAAApF,YAAWmF,EAAK,MAAO,wCAEjD,OAAO7E,OAAOC,KAAKX,EAAQ0F,iBAAiBrE,EAAmBmE,GACjE,EAzEA,eACA,Q,8DCEA,2CACExF,EACA6C,EACAnB,EACAjB,EACA6C,EACAqC,EACAtC,EACAuC,EACAC,GAEA,MAAMlE,GAAoB,IAAAvB,YAAWsB,EAAK,cAAe,wCACnDH,GAAwB,IAAAnB,aAC5B,IAAAwE,kBAAiBnE,GAAWA,EAAQM,IAAMN,EAC1C,UACA,iEAEIiD,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAC3CwC,GAAmB,IAAA1F,YAAWuF,EAAI,KAAM,wCACxClC,GAAsB,IAAAR,YAAWI,EAAO,QAAS,iCACjD0C,GAAuB,IAAA3F,YAAWwF,EAAQ,SAAU,wCACpDI,GAA2B,IAAA5F,YAAWyF,EAAY,aAAc,wCAEhEI,EAAmBvF,OAAOC,KAC9BX,EAAQkG,wBACNrD,EACAlB,EACAJ,EACAmC,EACAoC,EACArC,EACAsC,EACAC,IAIJ,MAAO,CACLf,GAAIgB,EAAiBnF,MAAM,EAAG,IAC9BqF,GAAIF,EAAiBnF,MAAM,GAAI,IAC/BsF,GAAIH,EAAiBnF,MAAM,GAAI,IAC/BuF,GAAIJ,EAAiBnF,MAAM,GAAI,KAC/BwE,MAAOW,EAAiBnF,MAAM,IAAK,KAEvC,EAEA,2CACEd,EACA6C,EACAyD,EACA7F,EACA6C,EACAqC,EACAtC,EACAuC,EACAC,GAEA,MAAMU,GAAoB,IAAAnG,YAAWkG,EAAK,iBAAkB,wCACtD/E,GAAwB,IAAAnB,aAC5B,IAAAwE,kBAAiBnE,GAAWA,EAAQM,IAAMN,EAC1C,UACA,iEAEIiD,GAAoB,IAAAtD,YAAWkD,EAAK,MAAO,wCAC3CwC,GAAmB,IAAA1F,YAAWuF,EAAI,KAAM,wCACxClC,GAAsB,IAAAR,YAAWI,EAAO,QAAS,iCACjD0C,GAAuB,IAAA3F,YAAWwF,EAAQ,SAAU,wCACpDI,GAA2B,IAAA5F,YAAWyF,EAAY,aAAc,wCAEhEI,EAAmBvF,OAAOC,KAC9BX,EAAQwG,wBACN3D,EACA0D,EACAhF,EACAmC,EACAoC,EACArC,EACAsC,EACAC,IAIJ,MAAO,CACLf,GAAIgB,EAAiBnF,MAAM,EAAG,IAC9BqF,GAAIF,EAAiBnF,MAAM,GAAI,IAC/BsF,GAAIH,EAAiBnF,MAAM,GAAI,IAC/BuF,GAAIJ,EAAiBnF,MAAM,GAAI,KAC/BwE,MAAOW,EAAiBnF,MAAM,IAAK,KAEvC,EAEA,+CACEd,EACAyG,EACA/E,EACAiE,EACA5C,GAEA,MAAM2D,EAA4BhG,OAAOiG,OAAO,CAACF,EAAYxB,GAAIwB,EAAYN,GAAIM,EAAYL,GAAIK,EAAYJ,GAAII,EAAYnB,QACvH3D,GAAoB,IAAAvB,YAAWsB,EAAK,cAAe,wCACnDoE,GAAmB,IAAA1F,YAAWuF,EAAI,KAAM,wCACxCzC,GAAwB,IAAA9C,YAAW2C,EAAS,UAAW,wCAEvD6D,EAA4BlG,OAAOC,KAAKX,EAAQ6G,4BAA4BH,EAAmB/E,EAAWmE,EAAU5C,IAE1H,MAAO,CACL+B,GAAI2B,EAAkB9F,MAAM,EAAG,IAC/BqF,GAAIS,EAAkB9F,MAAM,GAAI,IAChCsF,GAAIQ,EAAkB9F,MAAM,GAAI,IAChCuF,GAAIO,EAAkB9F,MAAM,GAAI,KAChCwE,MAAOsB,EAAkB9F,MAAM,IAAK,KACpCgG,aAAcF,EAAkB9F,MAAM,IAAK,KAE/C,EAnHA,eACA,Q,WCAA,SAAgBV,EAAWiD,EAA8C0D,EAAeC,GACtF,GAAItG,OAAOuG,SAAS5D,GAClB,OAAOA,EACF,GAAI6D,EAAY7D,GACrB,OAAO3C,OAAOC,KAAK0C,EAAO,OACrB,GAAqB,iBAAVA,EAChB,OAAO8D,EAAc9D,GAChB,GAAqB,iBAAVA,GAAP,MAA6BA,EACtC,OAAO3C,OAAOC,KAAK0C,GAEnB,MAAM+D,EAAiBL,EAAMC,EAEjC,CAoBA,SAAgBG,EAAcE,GAC5B,MAAMC,EAAS5G,OAAO6G,MAAM,GAC5BD,EAAOE,KAAK,GACZF,EAAOG,aAAaJ,GAEpB,IAAIK,EAAe,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIL,EAAOM,WAAYD,IACrC,GAAkB,IAAdL,EAAO,GAAa,CACtBI,EAAeC,EACf,KACF,CAGF,OAAOD,EAAe,EAAIJ,EAAOxG,MAAM4G,GAAgBJ,CACzD,C,iDA9CA,eAcA,8BACEjE,EACAwE,EACAd,EACAC,GAEA,IAAIM,EAASlH,EAAWiD,EAAO0D,EAAMC,GAErC,QAAkB1G,IAAduH,GAA2BA,GAAaP,EAAOM,WACjD,OAAON,EAGT,MAAMQ,EAAgBpH,OAAO6G,MAAMM,EAAYP,EAAOM,YAGtD,OAFAE,EAAcN,KAAK,GAEZ9G,OAAOiG,OAAO,CAACmB,EAAeR,GACvC,EAEA,kBAmBA,gBAMA,sBAA2BjE,EAAwB0D,EAAeC,GAChE,GAAqB,iBAAV3D,EACT,OAAOA,EACF,GAAqB,iBAAVA,EAChB,OAAO0E,SAAS1E,GAEhB,MAAM+D,EAAiBL,EAAMC,EAEjC,EAEA,sBAA2B3D,EAAiC0D,EAAeC,GACzE,GAAqB,iBAAV3D,EACT,OAAOA,EACF,GAAqB,iBAAVA,GAAuC,iBAAVA,EAC7C,OAAOA,EAAM2E,WAEb,MAAMZ,EAAiBL,EAAMC,EAEjC,EAIA,2BACE,MAAM,IAAIiB,MAAM,6BAClB,EAEA,gBAAOC,eAAgCC,EAAoBC,GACzD,OAAOC,QAAQC,OAAwB,iBAAVF,EAAqB,GAAGD,MAAeC,IAAUA,EAChF,EAEA,qBArCA,MAAMG,EAAQ,sBACd,SAAgBrB,EAAYsB,GAC1B,MAAyB,iBAAXA,GAAuBD,EAAME,KAAKD,EAClD,CAkCA,SAAgBpB,EAAiBL,EAAeC,GAC9C,YAAgB1G,IAATyG,QAAuCzG,IAAjB0G,EACzB,IAAIiB,MAAM,KAAKlB,oCAAuCC,KACtD,IAAI0B,SACV,C,8DClDA,iBAAOR,eAA8B1F,EAA2CC,GAC9E,IACE,IAAKkG,EAAe,CAClB,MAAM3I,QAA6B4I,GAEnC,IAAAC,wBAAuB7I,EAASwC,EAAaC,GAC7CkG,GAAgB,CAClB,CACF,CAAE,MAAOP,GACP,OAAO,IAAAU,eAAc,OAAQV,EAC/B,CACF,EAUA,yBAAOF,eAAsChG,EAAoCC,GAC/E,IACE,MAAMnC,QAA6B4I,EAEnC,OAAO,IAAAG,aAAY/I,EAASkC,EAAMC,EACpC,CAAE,MAAOiG,GACP,OAAO,IAAAU,eAAc,yBAA0BV,EACjD,CACF,EAUA,4BAAOF,eAAyChG,EAAoCC,GAClF,IACE,MAAMnC,QAA6B4I,EAEnC,OAAO,IAAAI,cAAahJ,EAASkC,EAAMC,EACrC,CAAE,MAAOiG,GACP,OAAO,IAAAU,eAAc,4BAA6BV,EACpD,CACF,EAQA,yBAAOF,eAAsCe,GAC3C,IACE,MAAMjJ,QAA6B4I,EAEnC,OAAO,IAAAM,sBAAqBlJ,EAASiJ,EACvC,CAAE,MAAOb,GACP,OAAO,IAAAU,eAAc,yBAA0BV,EACjD,CACF,EAQA,2CAAOF,eAAwDe,GAC7D,IACE,MAAMjJ,QAA6B4I,EAEnC,OAAO,IAAAO,qBAAoBnJ,EAASiJ,EACtC,CAAE,MAAOb,GACP,OAAO,IAAAU,eAAc,2CAA4CV,EACnE,CACF,EAQA,wBAAOF,eAAqCkB,GAC1C,IACE,MAAMpJ,QAA6B4I,EAEnC,OAAO,IAAAS,aAAYrJ,EAASoJ,EAC9B,CAAE,MAAOhB,GACP,OAAO,IAAAU,eAAc,wBAAyBV,EAChD,CACF,EAQA,wBAAOF,eAAqCkB,GAC1C,IACE,MAAMpJ,QAA6B4I,EAEnC,OAAO,IAAAU,aAAYtJ,EAASoJ,EAC9B,CAAE,MAAOhB,GACP,OAAO,IAAAU,eAAc,wBAAyBV,EAChD,CACF,EAUA,kCAAOF,eACLkB,EACAlJ,GAEA,IACE,MAAMF,QAA6B4I,EAEnC,OAAO,IAAAW,oBAAmBvJ,EAASoJ,EAAYlJ,EACjD,CAAE,MAAOkI,GACP,OAAO,IAAAU,eAAc,kCAAmCV,EAC1D,CACF,EAUA,sCAAOF,eACLkB,EACAlJ,GAEA,IACE,MAAMF,QAA6B4I,EAEnC,OAAO,IAAAY,wBAAuBxJ,EAASoJ,EAAYlJ,EACrD,CAAE,MAAOkI,GACP,OAAO,IAAAU,eAAc,sCAAuCV,EAC9D,CACF,EASA,6CAAOF,eACLuB,EACAtI,GAEA,IACE,MAAMnB,QAA6B4I,EAEnC,OAAO,IAAAc,sBAAqB1J,EAASyJ,EAAoBtI,EAC3D,CAAE,MAAOiH,GACP,OAAO,IAAAU,eAAc,6CAA8CV,EACrE,CACF,EAQA,sCAAOF,eAAmDzH,GACxD,IACE,MAAMT,QAA6B4I,EAEnC,OAAO,IAAAe,8BAA6B3J,EAASS,EAC/C,CAAE,MAAO2H,GACP,OAAO,IAAAU,eAAc,sCAAuCV,EAC9D,CACF,EAQA,8BAAOF,eAA2CzH,GAChD,IACE,MAAMT,QAA6B4I,EAEnC,OAAO,IAAAgB,sBAAqB5J,EAASS,EACvC,CAAE,MAAO2H,GACP,OAAO,IAAAU,eAAc,8BAA+BV,EACtD,CACF,EAUA,qBAAOF,eAAqC2B,GAC1C,IACE,MAAM7J,QAA6B4I,EAE7B/F,EAAkB7C,EAAQ8J,qBAC1BC,QAAkBF,EAAOhH,GAG/B,OAFA7C,EAAQgK,mBAAmBnH,GAEpBkH,CACT,CAAE,MAAO3B,GACP,OAAO,IAAAU,eAAc,4BAA6BV,EACpD,CACF,EAOA,QAAOF,iBACL,IACE,MAAMlI,QAA6B4I,EAEnC,OAAOlI,OAAOC,KAAKX,EAAQiK,QAC7B,CAAE,MAAO7B,GACP,OAAO,IAAAU,eAAc,QAASV,EAChC,CACF,EAYA,yBAAOF,eACLrF,EACAC,EACAC,GAEA,IACE,MAAM/C,QAA6B4I,EAEnC,OAAO,IAAAsB,0BAAyBlK,EAAS6C,EAASC,EAAcC,EAClE,CAAE,MAAOqF,GACP,OAAO,IAAAU,eAAc,yBAA0BV,EACjD,CACF,EAeA,yCAAOF,eACLrF,EACAoG,EACAxI,EACA6C,EACAqC,EACAtC,EACAuC,EACAC,GAEA,IACE,MAAM7F,QAA6B4I,EAEnC,OAAO,IAAAuB,iCAAgCnK,EAAS6C,EAASoG,EAAaxI,EAAS6C,EAAKqC,EAAItC,EAAOuC,EAAQC,EACzG,CAAE,MAAOuC,GACP,OAAO,IAAAU,eAAc,yCAA0CV,EACjE,CACF,EAeC,4CAAOF,eACNrF,EACAuH,EACA3J,EACA6C,EACAqC,EACAtC,EACAuC,EACAC,GAEA,IACE,MAAM7F,QAA6B4I,EAEnC,OAAO,IAAAyB,iCAAgCrK,EAAS6C,EAASuH,EAAgB3J,EAAS6C,EAAKqC,EAAItC,EAAOuC,EAAQC,EAC5G,CAAE,MAAOuC,GACP,OAAO,IAAAU,eAAc,4CAA6CV,EACpE,CACF,EAWA,uBAAOF,eACLjC,EACAgD,EACAtD,EACA5C,GAEA,IACE,MAAM/C,QAA6B4I,EAEnC,OAAO,IAAA0B,qCAAoCtK,EAASiG,EAAkBgD,EAAatD,EAAI5C,EACzF,CAAE,MAAOqF,GACP,OAAO,IAAAU,eAAc,uBAAwBV,EAC/C,CACF,EAaA,2BAAOF,eACLrF,EACAuG,EACAmB,EACAjH,EACAD,EACAqB,GAEA,IACE,MAAM1E,QAA6B4I,EAEnC,OAAO,IAAA4B,mCAAkCxK,EAAS6C,EAASuG,EAAYmB,EAAajH,EAAKD,EAAOqB,EAClG,CAAE,MAAO0D,GACP,OAAO,IAAAU,eAAc,2BAA4BV,EACnD,CACF,EAYA,kCAAOF,eACLrF,EACA0H,EACAjH,EACAmH,EACApH,GAEA,IACE,MAAMrD,QAA6B4I,EAEnC,OAAO,IAAA8B,kCAAiC1K,EAAS6C,EAAS0H,EAAajH,EAAKmH,EAAcpH,EAC5F,CAAE,MAAO+E,GACP,OAAO,IAAAU,eAAc,kCAAmCV,EAC1D,CACF,EASA,2BAAOF,eACL/G,EACAwJ,GAEA,IACE,MAAM3K,QAA6B4I,EAEnC,OAAO,IAAAgC,0BAAyB5K,EAASmB,EAAawJ,EACxD,CAAE,MAAOvC,GACP,OAAO,IAAAU,eAAc,2BAA4BV,EACnD,CACF,EAWA,mBAAOF,eACL2C,EACApK,EACA4C,EACAC,GAEA,IACE,MAAMtD,QAA6B4I,EAEnC,OAAO,IAAAkC,mBAAkB9K,EAAS6K,EAAYpK,EAAS4C,EAAOC,EAChE,CAAE,MAAO8E,GACP,OAAO,IAAAU,eAAc,mBAAoBV,EAC3C,CACF,EAYA,mBAAOF,eACLkB,EACA3I,EACA4C,EACAC,EACAgB,GAEA,IACE,MAAMtE,QAA6B4I,EAEnC,OAAO,IAAAmC,mBAAkB/K,EAASoJ,EAAY3I,EAAS4C,EAAOC,EAAKgB,EACrE,CAAE,MAAO8D,GACP,OAAO,IAAAU,eAAc,mBAAoBV,EAC3C,CACF,EAUA,aAAOF,eACLpE,EACAC,EACAC,GAEA,IACE,MAAMhE,QAA6B4I,EAEnC,OAAO,IAAAoC,4BAA2BhL,EAAS8D,EAAOC,EAAKC,EACzD,CAAE,MAAOoE,GACP,OAAO,IAAAU,eAAc,aAAcV,EACrC,CACF,EASA,eAAOF,eAA4BrG,EAAiCC,GAClE,IACE,MAAM9B,QAA6B4I,EAEnC,OAAO,IAAAqC,sBAAqBjL,EAAS6B,EAAGC,EAC1C,CAAE,MAAOsG,GACP,OAAO,IAAAU,eAAc,eAAgBV,EACvC,CACF,EAljBA,eAOA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SAKA,SAEA,SASA,IAAIO,GAAyB,EAC7B,MAAMC,EAAuC,6BAAO,MACjDsC,MAAO9C,IAEN,MADA+C,QAAQ/C,MAAMA,GACR,IAAIH,MAAM,gCAAgCG,M,28BChCpD,QAAe,G,iCCER,SAASjF,EAAiBiI,EAAKC,EAAetI,GACjD,IACI,MAAMuI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOC,GAAkBL,EAAeE,GAAKI,kBAAmBJ,GAAKK,oBACrEC,EAAOC,GACPC,EAAOC,GAAkBjJ,EAASwI,GAAKI,mBACvCM,EAAOH,GACbP,GAAKpI,iBAAiBmI,EAAQF,EAAKK,EAAMI,EAAME,EAAME,GACrD,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAQO,SAAS5H,EAAkBnD,EAAS4C,EAAOC,GAC9C,IACI,MAAMgI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBvL,EAAS8K,GAAKI,mBACvCE,EAAOC,GACPC,EAAOL,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DK,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACbP,GAAK3H,kBAAkB0H,EAAQG,EAAMI,EAAME,EAAME,EAAMU,EAAMC,GAC7D,IAAIV,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIO,EAAKJ,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BQ,CACX,CAAE,QACEtB,GAAKC,gCAAgC,GACzC,CACJ,CAUO,SAAShH,EAAiBvE,EAAMQ,EAAS4C,EAAOC,EAAKgB,GACxD,IACI,MAAMgH,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACPC,EAAOC,GAAkBvL,EAAS8K,GAAKI,mBACvCM,EAAOH,GACPa,EAAOjB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DgB,EAAOd,GACPgB,EAAOd,GAAkB1I,EAAKiI,GAAKI,mBACnCoB,EAAOjB,GACPkB,EAAOtB,GAAkBpH,EAAUiH,GAAKI,kBAAmBJ,GAAKK,oBAChEqB,EAAOnB,GACbP,GAAK/G,iBAAiB8G,EAAQG,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,EAAMC,EAAMC,GACpF,IAAIf,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIY,EAAKT,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Ba,CACX,CAAE,QACE3B,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAAS3K,EAA8BZ,GAC1C,IACI,MAAMqL,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACbP,GAAK1K,8BAA8ByK,EAAQG,EAAMI,GACjD,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAAS9F,EAAiBvE,EAAaoE,GAC1C,IACI,MAAM+F,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB7K,EAAaoK,GAAKI,mBAC3CE,EAAOC,GACPC,EAAOC,GAAkBzG,EAAKgG,GAAKI,mBACnCM,EAAOH,GACbP,GAAK7F,iBAAiB4F,EAAQG,EAAMI,EAAME,EAAME,GAChD,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAAShK,EAA8Bf,GAC1C,IACI,MAAM6K,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBvL,EAAS8K,GAAKI,mBACvCE,EAAOC,GACbP,GAAK/J,8BAA8B8J,EAAQG,EAAMI,GACjD,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAKO,SAASxB,EAAmBoB,GAC/BG,GAAKvB,mBAAmBoB,EAC5B,CAMO,SAASxI,EAAWwK,EAAcC,GACrC,MAAM5B,EAAOO,GAAkBoB,EAAc7B,GAAKI,mBAC5CE,EAAOC,GACPC,EAAOC,GAAkBqB,EAAe9B,GAAKI,mBAC7CM,EAAOH,GACbP,GAAK3I,WAAW6I,EAAMI,EAAME,EAAME,EACtC,CAKO,SAASnC,IAEZ,OADYyB,GAAKzB,uBACF,CACnB,CAOO,SAAS7H,EAAaJ,EAAGC,GAC5B,IACI,MAAMwJ,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBnK,EAAG0J,GAAKI,mBACjCE,EAAOC,GACPC,EAAOC,GAAkBlK,EAAIyJ,GAAKI,mBAClCM,EAAOH,GACbP,GAAKtJ,aAAaqJ,EAAQG,EAAMI,EAAME,EAAME,GAC5C,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAQO,SAASnH,EAAWP,EAAOC,EAAKC,GACnC,IACI,MAAMsH,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBjI,EAAKwH,GAAKI,mBACnCE,EAAOC,GACPC,EAAOC,GAAkBhI,EAAKuH,GAAKI,mBACnCM,EAAOH,GACbP,GAAKlH,WAAWiH,EAAQxH,EAAO2H,EAAMI,EAAME,EAAME,GACjD,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAASxK,EAA2Bf,EAAMC,GAC7C,IACI,MAAMoL,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACPC,EAAOC,GAAkB9L,EAAOqL,GAAKI,mBACrCM,EAAOH,GACbP,GAAKvK,2BAA2BsK,EAAQG,EAAMI,EAAME,EAAME,GAC1D,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAUO,SAAS8B,EAAyBlC,EAAKmC,EAAK9I,EAAInB,EAAKD,GACxD,IACI,MAAMiI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBuB,EAAKhC,GAAKI,mBACnCE,EAAOC,GACPC,EAAOC,GAAkBvH,EAAI8G,GAAKI,mBAClCM,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOpB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DmB,EAAOjB,GACbP,GAAK+B,yBAAyBhC,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,GACrF,IAAIb,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIkB,EAAKf,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BmB,CACX,CAAE,QACEjC,GAAKC,gCAAgC,GACzC,CACJ,CAUO,SAASxG,EAA0BoG,EAAKnL,EAAMwE,EAAInB,EAAKD,GAC1D,IACI,MAAMiI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACPC,EAAOC,GAAkBvH,EAAI8G,GAAKI,mBAClCM,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOpB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DmB,EAAOjB,GACbP,GAAKvG,0BAA0BsG,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,GACtF,IAAIb,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIkB,EAAKf,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BmB,CACX,CAAE,QACEjC,GAAKC,gCAAgC,GACzC,CACJ,CAWO,SAASzG,EAAkCqG,EAAKnL,EAAMwE,EAAInB,EAAKD,EAAOqB,GACzE,IACI,MAAM4G,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACPC,EAAOC,GAAkBvH,EAAI8G,GAAKI,mBAClCM,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOpB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DmB,EAAOjB,GACPkB,EAAOhB,GAAkBtH,EAAM6G,GAAKI,mBACpCsB,EAAOnB,GACbP,GAAKxG,kCAAkCuG,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,EAAMC,EAAMC,GAC1G,IAAIf,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIY,EAAKT,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Ba,CACX,CAAE,QACE3B,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAASlJ,EAAYrC,GACxB,IACI,MAAMqL,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACbP,GAAKjJ,YAAYgJ,EAAQG,EAAMI,GAC/B,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAAS5J,EAAWF,GACvB,IACI,MAAM4J,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBtK,EAAK6J,GAAKI,mBACnCE,EAAOC,GACbP,GAAK3J,WAAW0J,EAAQG,EAAMI,GAC9B,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAUO,SAAS/F,EAAyB2F,EAAK3G,EAAInB,EAAKiC,EAAKlC,GACxD,IACI,MAAMiI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBvH,EAAI8G,GAAKI,mBAClCE,EAAOC,GACPC,EAAOC,GAAkB1I,EAAKiI,GAAKI,mBACnCM,EAAOH,GACPa,EAAOX,GAAkBzG,EAAKgG,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOpB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DmB,EAAOjB,GACbP,GAAK9F,yBAAyB6F,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,GACrF,IAAIb,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIkB,EAAKf,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BmB,CACX,CAAE,QACEjC,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAASlK,EAAsBJ,EAAKC,GACvC,IACI,MAAMmK,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB9K,EAAKqK,GAAKI,mBACnCE,EAAOC,GACPC,EAAOC,GAAkB7K,EAAaoK,GAAKI,mBAC3CM,EAAOH,GACbP,GAAKjK,sBAAsBgK,EAAQG,EAAMI,EAAME,EAAME,GACrD,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAAS5K,EAAuBX,EAAMC,GACzC,IACI,MAAMoL,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACPC,EAAOC,GAAkB9L,EAAOqL,GAAKI,mBACrCM,EAAOH,GACbP,GAAK3K,uBAAuB0K,EAAQG,EAAMI,EAAME,EAAME,GACtD,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAAS/J,EAAsBhB,GAClC,IACI,MAAM6K,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBvL,EAAS8K,GAAKI,mBACvCE,EAAOC,GACbP,GAAK9J,sBAAsB6J,EAAQG,EAAMI,GACzC,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAKO,SAASvB,IACZ,IACI,MAAMqB,EAASC,GAAKC,iCAAiC,IACrDD,GAAKtB,MAAMqB,GACX,IAAIY,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAImB,EAAKhB,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BoB,CACX,CAAE,QACElC,GAAKC,gCAAgC,GACzC,CACJ,CASO,SAAS3E,EAA4B6G,EAAmBhM,EAAKiE,EAAI5C,GACpE,IACI,MAAMuI,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB0B,EAAmBnC,GAAKI,mBACjDE,EAAOC,GACPC,EAAOC,GAAkBtK,EAAK6J,GAAKI,mBACnCM,EAAOH,GACPa,EAAOX,GAAkBrG,EAAI4F,GAAKI,mBAClCiB,EAAOd,GACPgB,EAAOd,GAAkBjJ,EAASwI,GAAKI,mBACvCoB,EAAOjB,GACbP,GAAK1E,4BAA4ByE,EAAQG,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,GACnF,IAAIb,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIkB,EAAKf,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BmB,CACX,CAAE,QACEjC,GAAKC,gCAAgC,GACzC,CACJ,CAaO,SAAShF,EAAwB4E,EAAK9E,EAAK7F,EAAS6C,EAAKqC,EAAItC,EAAOuC,EAAQ+H,GAC/E,IACI,MAAMrC,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB1F,EAAKiF,GAAKI,mBACnCE,EAAOC,GACPC,EAAOC,GAAkBvL,EAAS8K,GAAKI,mBACvCM,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOd,GAAkBrG,EAAI4F,GAAKI,mBAClCoB,EAAOjB,GACPkB,EAAOtB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DqB,EAAOnB,GACP8B,EAAO5B,GAAkBpG,EAAQ2F,GAAKI,mBACtCkC,EAAO/B,GACPgC,EAAO9B,GAAkB2B,EAAapC,GAAKI,mBAC3CoC,EAAOjC,GACbP,GAAK/E,wBAAwB8E,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,EAAMC,EAAMC,EAAMW,EAAMC,EAAMC,EAAMC,GACxH,IAAI7B,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAI0B,EAAKvB,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1B2B,CACX,CAAE,QACEzC,GAAKC,gCAAgC,GACzC,CACJ,CAaO,SAAStF,EAAwBkF,EAAK1J,EAAKjB,EAAS6C,EAAKqC,EAAItC,EAAOuC,EAAQ+H,GAC/E,IACI,MAAMrC,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBtK,EAAK6J,GAAKI,mBACnCE,EAAOC,GACPC,EAAOC,GAAkBvL,EAAS8K,GAAKI,mBACvCM,EAAOH,GACPa,EAAOX,GAAkB1I,EAAKiI,GAAKI,mBACnCiB,EAAOd,GACPgB,EAAOd,GAAkBrG,EAAI4F,GAAKI,mBAClCoB,EAAOjB,GACPkB,EAAOtB,GAAkBrI,EAAOkI,GAAKI,kBAAmBJ,GAAKK,oBAC7DqB,EAAOnB,GACP8B,EAAO5B,GAAkBpG,EAAQ2F,GAAKI,mBACtCkC,EAAO/B,GACPgC,EAAO9B,GAAkB2B,EAAapC,GAAKI,mBAC3CoC,EAAOjC,GACbP,GAAKrF,wBAAwBoF,EAAQF,EAAKK,EAAMI,EAAME,EAAME,EAAMU,EAAMC,EAAME,EAAMC,EAAMC,EAAMC,EAAMW,EAAMC,EAAMC,EAAMC,GACxH,IAAI7B,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAI0B,EAAKvB,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1B2B,CACX,CAAE,QACEzC,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAASvL,EAAKiC,EAAM+L,GACvB,IACI,MAAM3C,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB9J,EAAMqJ,GAAKI,mBACpCE,EAAOC,GACPC,EAAOL,GAAkBuC,EAAiB1C,GAAKI,kBAAmBJ,GAAKK,oBACvEK,EAAOH,GACbP,GAAKtL,KAAKqL,EAAQG,EAAMI,EAAME,EAAME,GACpC,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAASnJ,EAAYX,GACxB,IACI,MAAM4J,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkBtK,EAAK6J,GAAKI,mBACnCE,EAAOC,GACbP,GAAKlJ,YAAYiJ,EAAQG,EAAMI,GAC/B,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAMO,SAASjJ,EAAUtC,GACtB,IACI,MAAMqL,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB/L,EAAMsL,GAAKI,mBACpCE,EAAOC,GACbP,GAAKhJ,UAAU+I,EAAQG,EAAMI,GAC7B,IAAIK,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIa,EAAKV,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1Bc,CACX,CAAE,QACE5B,GAAKC,gCAAgC,GACzC,CACJ,CAOO,SAAS9J,EAAIQ,EAAM+L,GACtB,IACI,MAAM3C,EAASC,GAAKC,iCAAiC,IAC/CC,EAAOO,GAAkB9J,EAAMqJ,GAAKI,mBACpCE,EAAOC,GACPC,EAAOL,GAAkBuC,EAAiB1C,GAAKI,kBAAmBJ,GAAKK,oBACvEK,EAAOH,GACbP,GAAK7J,IAAI4J,EAAQG,EAAMI,EAAME,EAAME,GACnC,IAAIC,EAAKC,IAAqBC,SAASd,EAAS,GAAO,GACnDe,EAAKF,IAAqBC,SAASd,EAAS,GAAO,GACnDgB,EAAKH,IAAqBC,SAASd,EAAS,GAAO,GAEvD,GADSa,IAAqBC,SAASd,EAAS,IAAO,GAEnD,MAAMiB,GAAWD,GAErB,IAAIE,EAAKC,EAAoBP,EAAIG,GAAIvL,QAErC,OADAyK,GAAKmB,gBAAgBR,EAAS,EAALG,EAAQ,GAC1BG,CACX,CAAE,QACEjB,GAAKC,gCAAgC,GACzC,CACJ,CACO,SAAS0C,EAA+CC,GAE3D,YADgC7N,IAApB8N,GAAUD,EAE1B,CACO,SAASE,EAA2CF,EAAMG,GAE7D,OADYF,GAAUD,KAAUC,GAAUE,EAE9C,CACO,SAASC,EAAwCJ,EAAMG,GAC1D,MAAM,IAAIrG,MAAMuG,EAAmBL,EAAMG,GAC7C,CACO,SAASG,EAA4BN,EAAMG,GAE9C,OAAOI,EADKN,GAAUD,GAAMQ,KAAKP,GAAUE,IAE/C,CACO,SAASM,EAA8BT,GAE1C,OAAOO,EADKN,GAAUD,GAAMU,OAEhC,CACO,SAASC,EAA6BX,EAAMG,GAC/C,IAAIS,EACAC,EACJ,IACID,EAAcZ,EACda,EAAcV,EACdnD,QAAQ/C,MAAMoG,EAAmBL,EAAMG,GAC3C,CAAE,QACE/C,GAAKmB,gBAAgBqC,EAAaC,EAAa,EACnD,CACJ,CACO,SAASC,EAAuCd,EAAMG,EAAMY,GAC/Dd,GAAUD,GAAMgB,gBAAgB1C,EAAoB6B,EAAMY,GAC9D,CACO,SAASE,EAAuCjB,GAEnD,OAAOO,EADKN,GAAUD,GAAMgB,gBAEhC,CACO,SAASE,IAEZ,OAAOX,EADK,IAAIzG,MAEpB,CACO,SAASqH,EAA2BnB,EAAMG,GAE7C,OAAOI,EADK,IAAIa,SAASf,EAAmBL,EAAMG,IAEtD,CACO,SAASkB,EAAsCrB,EAAMG,EAAMY,GAC9Dd,GAAUD,GAAMsB,eAAehD,EAAoB6B,EAAMY,GAC7D,CACO,SAASQ,EAA+BvB,EAAMG,GAEjD,OAAOI,EADKiB,QAAQnB,EAAmBL,EAAMG,IAEjD,CACO,SAASsB,EAA4BzB,GAExC,OAAOO,EADKN,GAAUD,GAAM0B,KAEhC,CACO,SAASC,EAA6B3B,EAAMG,GAC/C,MACMvC,EAAOL,GADD0C,GAAUE,GAAMyB,MACQxE,GAAKI,kBAAmBJ,GAAKK,oBAC3DK,EAAOH,GACbK,IAAqB6D,SAAS7B,EAAO,EAAOlC,GAAM,GAClDE,IAAqB6D,SAAS7B,EAAO,EAAOpC,GAAM,EACtD,CACO,SAASkE,EAAiC9B,EAAMG,GAGnD,OAAOI,EADKF,EAAmBL,EAAMG,GAEzC,CACO,SAAS4B,EAA2B/B,GACvC5B,GAAW4B,EACf,CACA,SAASO,EAAcyB,GACfC,KAAcC,GAAKC,QAAQD,GAAKE,KAAKF,GAAKC,OAAS,GACvD,MAAME,EAAMJ,GAIZ,OAHAA,GAAYC,GAAKG,GAEjBH,GAAKG,GAAOL,EACLK,CACX,CAQA,SAAS/D,EAAoBgE,EAAKC,GAE9B,OADAD,KAAc,EACPE,KAAuBC,SAASH,EAAM,EAAGA,EAAM,EAAIC,EAC9D,C,saAEA,IAAIG,EAAwB,KAC5B,SAAS1E,IAIL,OAH8B,OAA1B0E,IAA4E,IAA1CA,EAAsBvJ,OAAOwJ,eAAgExQ,IAA1CuQ,EAAsBvJ,OAAOwJ,UAA0BD,EAAsBvJ,SAAWiE,GAAKwF,OAAOzJ,UACzLuJ,EAAwB,IAAIG,SAASzF,GAAKwF,OAAOzJ,SAE9CuJ,CACX,CAEA,SAASrC,EAAmBiC,EAAKC,GAE7B,OAwEJ,SAAoBD,EAAKC,GAOrB,OANAO,IAAmBP,EACfO,IAAmBC,KACnBC,GAAoB,IAAIC,YAAY,QAAS,CAAEC,WAAW,EAAMC,OAAO,IACvEH,GAAkBI,SAClBN,GAAkBP,GAEfS,GAAkBI,OAAOZ,KAAuBC,SAASH,EAAKA,EAAMC,GAC/E,CAhFWc,CADPf,KAAc,EACSC,EAC3B,CAEA,IAAIe,EAA0B,KAC9B,SAASd,KAIL,OAHgC,OAA5Bc,GAA2E,IAAvCA,EAAwB7J,aAC5D6J,EAA0B,IAAIC,WAAWnG,GAAKwF,OAAOzJ,SAElDmK,CACX,CAEA,SAASrD,GAAUoC,GAAO,OAAOH,GAAKG,EAAM,CAE5C,IAAIH,GAAO,IAAIsB,MAAM,MAAMnK,UAAKlH,GAChC+P,GAAKE,UAAKjQ,EAAW,MAAM,GAAM,GAEjC,IAAI8P,GAAYC,GAAKC,OAErB,SAAStE,GAAkB4F,EAAKC,GAC5B,MAAMpB,EAAMoB,EAAoB,EAAbD,EAAItB,OAAY,KAAO,EAG1C,OAFAK,KAAuBmB,IAAIF,EAAKnB,EAAM,GACtC3E,GAAkB8F,EAAItB,OACfG,CACX,CAEA,SAAS/E,GAAkBkG,EAAKC,EAAQE,GACpC,QAAgBzR,IAAZyR,EAAuB,CACvB,MAAMC,EAAMC,GAAkBC,OAAON,GAC/BnB,EAAMoB,EAAOG,EAAI1B,OAAQ,KAAO,EAGtC,OAFAK,KAAuBC,SAASH,EAAKA,EAAMuB,EAAI1B,QAAQwB,IAAIE,GAC3DlG,GAAkBkG,EAAI1B,OACfG,CACX,CAEA,IAAIC,EAAMkB,EAAItB,OACVG,EAAMoB,EAAOnB,EAAK,KAAO,EAE7B,MAAMyB,EAAMxB,KAEZ,IAAIyB,EAAS,EAEb,KAAOA,EAAS1B,EAAK0B,IAAU,CAC3B,MAAMC,EAAOT,EAAIU,WAAWF,GAC5B,GAAIC,EAAO,IAAM,MACjBF,EAAI1B,EAAM2B,GAAUC,CACxB,CACA,GAAID,IAAW1B,EAAK,CACD,IAAX0B,IACAR,EAAMA,EAAI9Q,MAAMsR,IAEpB3B,EAAMsB,EAAQtB,EAAKC,EAAKA,EAAM0B,EAAsB,EAAbR,EAAItB,OAAY,KAAO,EAC9D,MAAMiC,EAAO5B,KAAuBC,SAASH,EAAM2B,EAAQ3B,EAAMC,GAGjE0B,GAFYH,GAAkBO,WAAWZ,EAAKW,GAEhCE,QACdhC,EAAMsB,EAAQtB,EAAKC,EAAK0B,EAAQ,KAAO,CAC3C,CAGA,OADAtG,GAAkBsG,EACX3B,CACX,CAEA,SAASlE,GAAWiE,GAChB,MAAMkC,EAAMtE,GAAUoC,GAEtB,OAtFJ,SAAoBA,GACZA,EAAM,OACVH,GAAKG,GAAOJ,GACZA,GAAYI,EAChB,CAiFImC,CAAWnC,GACJkC,CACX,CAEA,IAAIvB,GAAoB,IAAIC,YAAY,QAAS,CAAEC,WAAW,EAAMC,OAAO,IAC3EH,GAAkBI,SAClB,MAAML,GAA0B,WAChC,IAAID,GAAkB,EAWtB,MAAMgB,GAAoB,IAAIW,YAExB,eAAgBX,KAClBA,GAAkBO,WAAa,SAAUZ,EAAKW,GAC1C,MAAMP,EAAMC,GAAkBC,OAAON,GAErC,OADAW,EAAKT,IAAIE,GACF,CACHa,KAAMjB,EAAItB,OACVmC,QAAST,EAAI1B,OAErB,GAGJ,IAGI/E,GAHAO,GAAkB,EAIf,SAASgH,GAAeC,GAC3BxH,GAAOwH,CACX,C,osBCn/BIC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB5S,IAAjB6S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CACjDI,GAAIJ,EAEJE,QAAS,CAAC,GAOX,OAHAG,EAAoBL,GAAUvE,KAAK0E,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAGpEI,EAAOD,OACf,ClBtBIzT,EAA8B,mBAAX6T,OACnB5T,EAAgBD,EAAY6T,OAAO,kBAAoB,qBACvD3T,EAAiBF,EAAY6T,OAAO,mBAAqB,sBACzD1T,EAAeH,EAAY6T,OAAO,iBAAmB,oBAErDzT,EAAgB0T,IAChBA,GAASA,EAAMC,EAAI,IACrBD,EAAMC,EAAI,EACVD,EAAME,QAASC,GAAQA,EAAGC,KAC1BJ,EAAME,QAASC,GAAQA,EAAGC,IAAMD,EAAGC,IAAMD,OA4B3CX,EAAoBa,EAAI,CAACT,EAAQU,EAAMC,KACtC,IAAIP,EACJO,KAAcP,EAAQ,IAAIC,GAAK,GAC/B,IAEIO,EACAC,EACA5L,EAJA6L,EAAY,IAAIC,IAChBhB,EAAUC,EAAOD,QAIjBiB,EAAU,IAAIhM,QAAQ,CAACiM,EAASC,KACnCjM,EAASiM,EACTL,EAAeI,IAEhBD,EAAQxU,GAAkBuT,EAC1BiB,EAAQzU,GAAkBgU,IAAQH,GAASG,EAAGH,GAAQU,EAAUR,QAAQC,GAAKS,EAAe,MAAEG,QAC9FnB,EAAOD,QAAUiB,EAkBjBN,EAjBcU,IAEb,IAAIb,EADJK,EAzCa,CAACQ,GAAUA,EAAKC,IAAKC,IACnC,GAAW,OAARA,GAA+B,iBAARA,EAAkB,CAE3C,GAAGA,EAAI/U,GAAgB,OAAO+U,EAC9B,GAAGA,EAAIC,KAAM,CACZ,IAAInB,EAAQ,GACZA,EAAMC,EAAI,EACViB,EAAIC,KAAMf,IACT1D,EAAItQ,GAAkBgU,EACtB9T,EAAa0T,IACVoB,IACH1E,EAAIrQ,GAAgB+U,EACpB9U,EAAa0T,KAEd,IAAItD,EAAM,CAAC,EAGX,OADAA,EAAIvQ,GAAkBgU,GAAQA,EAAGH,GAC1BtD,CACR,CACD,CACA,IAAIuC,EAAM,CAAC,EAGX,OAFAA,EAAI9S,GAAiB4U,MACrB9B,EAAI7S,GAAkB8U,EACfjC,IAkBQoC,CAASL,GAEvB,IAAIM,EAAY,IAAOd,EAAYS,IAAKhB,IAEvC,GAAGA,EAAE5T,GAAe,MAAM4T,EAAE5T,GAC5B,OAAO4T,EAAE7T,KAENwU,EAAU,IAAIhM,QAASiM,KAC1BV,EAAK,IAAOU,EAAQS,IACjBlB,EAAI,EACP,IAAImB,EAAWC,GAAOA,IAAMxB,IAAUU,EAAUe,IAAID,KAAOd,EAAUgB,IAAIF,GAAIA,IAAMA,EAAEvB,IAAME,EAAGC,IAAKoB,EAAE1E,KAAKqD,KAC1GK,EAAYS,IAAKC,GAASA,EAAI/U,GAAeoV,MAE9C,OAAOpB,EAAGC,EAAIQ,EAAUU,KAEbK,IAAUA,EAAM9M,EAAO+L,EAAQvU,GAAgBsV,GAAOlB,EAAad,GAAWrT,EAAa0T,KAEvGA,GAASA,EAAMC,EAAI,IAAMD,EAAMC,EAAI,ImBrEpCT,EAAoBS,EAAI,CAACN,EAASiC,KACjC,IAAI,IAAIC,KAAOD,EACXpC,EAAoBsC,EAAEF,EAAYC,KAASrC,EAAoBsC,EAAEnC,EAASkC,IAC5ErU,OAAOuU,eAAepC,EAASkC,EAAK,CAAEG,YAAY,EAAMC,IAAKL,EAAWC,MCJ3ErC,EAAoBsC,EAAI,CAACpF,EAAKwF,IAAU1U,OAAO2U,UAAUC,eAAelH,KAAKwB,EAAKwF,GCClF1C,EAAoBY,EAAKT,IACH,oBAAXI,QAA0BA,OAAOsC,aAC1C7U,OAAOuU,eAAepC,EAASI,OAAOsC,YAAa,CAAEzS,MAAO,WAE7DpC,OAAOuU,eAAepC,EAAS,aAAc,CAAE/P,OAAO,KCLvD0S,EAAoBC,EAAI,CAAC5C,EAAS6C,EAAcC,EAAgBC,KAAhE,2LCGA,IAAIC,EAAsBnD,EAAoB,K","sources":["webpack://@taquito/sapling-wasm/webpack/runtime/async module","webpack://@taquito/sapling-wasm/./src/index.ts","webpack://@taquito/sapling-wasm/./src/internal/address/payment-address.ts","webpack://@taquito/sapling-wasm/./src/internal/key/authorizing-key.ts","webpack://@taquito/sapling-wasm/./src/internal/key/key-agreement.ts","webpack://@taquito/sapling-wasm/./src/internal/key/spending-key.ts","webpack://@taquito/sapling-wasm/./src/internal/key/viewing-key.ts","webpack://@taquito/sapling-wasm/./src/internal/parameters.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/binding-signature.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/commitment.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/merkle-tree.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/nullifier.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/output-description.ts","webpack://@taquito/sapling-wasm/./src/internal/transaction/spend-description.ts","webpack://@taquito/sapling-wasm/./src/internal/utils.ts","webpack://@taquito/sapling-wasm/./src/sapling.ts","webpack://@taquito/sapling-wasm/./pkg/index.js","webpack://@taquito/sapling-wasm/./pkg/index_bg.js","webpack://@taquito/sapling-wasm/webpack/bootstrap","webpack://@taquito/sapling-wasm/webpack/runtime/define property getters","webpack://@taquito/sapling-wasm/webpack/runtime/hasOwnProperty shorthand","webpack://@taquito/sapling-wasm/webpack/runtime/make namespace object","webpack://@taquito/sapling-wasm/webpack/runtime/wasm loading","webpack://@taquito/sapling-wasm/webpack/startup"],"sourcesContent":["var hasSymbol = typeof Symbol === \"function\";\nvar webpackQueues = hasSymbol ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = hasSymbol ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = hasSymbol ? Symbol(\"webpack error\") : \"__webpack_error__\";\n\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tvar handle = (deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}\n\tvar done = (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue))\n\tbody(handle, done);\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","export * from './types'\nexport * from './sapling'\n","import { SaplingPaymentAddress } from '../../types'\nimport { WasmSapling } from '../types'\n\nimport { bufferFrom, bufferFromOfLength } from '../utils'\n\nexport function getAddressFromXfvk(\n sapling: WasmSapling,\n xfvk: Buffer | Uint8Array | string,\n index: Buffer | Uint8Array | string | number | undefined\n): SaplingPaymentAddress {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n const indexBuffer: Buffer | undefined =\n index !== undefined\n ? bufferFromOfLength(index, 11, 'index', '`Buffer`, `Uint8Array` or hex string').reverse() // LE\n : undefined\n\n const address = Buffer.from(\n indexBuffer !== undefined\n ? sapling.paymentAddressFromXfvk(xfvkBuffer, indexBuffer)\n : sapling.defaultPaymentAddressFromXfvk(xfvkBuffer)\n )\n\n return {\n index: address.slice(0, 11),\n raw: address.slice(11)\n }\n}\n\nexport function getNextAddressFromXfvk(\n sapling: WasmSapling,\n xfvk: Buffer | Uint8Array | string,\n index: Buffer | Uint8Array | string | number\n): SaplingPaymentAddress {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n const indexBuffer: Buffer = bufferFromOfLength(index, 11, 'index', '`Buffer`, `Uint8Array` or hex string').reverse() // LE\n\n const address: Buffer = Buffer.from(sapling.nextPaymentAddressFromXfvk(xfvkBuffer, indexBuffer))\n\n return {\n index: address.slice(0, 11),\n raw: address.slice(11)\n }\n}\n\nexport function isPaymentAddress(address: unknown): address is SaplingPaymentAddress {\n return address instanceof Object && (address as any).index !== undefined && (address as any).raw !== undefined\n}\n\nexport function getRawAddressFromIvk(\n sapling: WasmSapling, \n ivk: Buffer | Uint8Array | string, \n diversifier: Buffer | Uint8Array | string\n): Buffer {\n const ivkBuffer: Buffer = bufferFrom(ivk, 'ivk', '`Buffer`, `Uint8Array`, or hex string')\n const diversifierBuffer: Buffer = bufferFrom(diversifier, 'ivk', '`Buffer`, `Uint8Array`, or hex string')\n\n return Buffer.from(sapling.paymentAddressFromIvk(ivkBuffer, diversifierBuffer))\n}\n\nexport function getDiversifierFromRawAddress(sapling: WasmSapling, address: Buffer | Uint8Array | string): Buffer {\n const addressBuffer: Buffer = bufferFrom(address, 'address', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.diversifierFromPaymentAddress(addressBuffer))\n}\n\nexport function getPkdFromRawAddress(sapling: WasmSapling, address: Buffer | Uint8Array | string): Buffer {\n const addressBuffer: Buffer = bufferFrom(address, 'address', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.pkdFromPaymentAddress(addressBuffer))\n}\n","import { WasmSapling } from '../types'\nimport { bufferFrom } from '../utils'\n\nexport function __wasm__pak_from_xsk(sapling: WasmSapling, xsk: Buffer | Uint8Array | string): Buffer {\n const xskBuffer: Buffer = bufferFrom(xsk, 'spendingKey', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.pakFromXsk(xskBuffer))\n}","import { WasmSapling } from '../types'\nimport { bufferFrom } from '../utils'\n\nexport function __wasm__keyAgreement(sapling: WasmSapling, p: Buffer | Uint8Array | string, sk: Buffer | Uint8Array | string): Buffer {\n const pBuffer = bufferFrom(p, 'p', '`Buffer`, `Uint8Array` or hex string')\n const skBuffer = bufferFrom(sk, 'sk', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.keyAgreement(pBuffer, skBuffer))\n}","import { WasmSapling } from '../types'\nimport { bufferFrom } from '../utils'\n\nexport function __wasm__xsk(sapling: WasmSapling, seed: Buffer | Uint8Array | string, derivationPath: string): Buffer {\n const seedBuffer: Buffer = bufferFrom(seed, 'seed', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.xsk(seedBuffer, derivationPath))\n}\n","import { WasmSapling } from '../types'\nimport { bufferFrom } from '../utils'\n\nexport function __wasm__xfvk(sapling: WasmSapling, seed: Buffer | Uint8Array | string, derivationPath: string): Buffer {\n const seedBuffer: Buffer = bufferFrom(seed, 'seed', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.xfvk(seedBuffer, derivationPath))\n}\n\nexport function __wasm__xfvkFromXsk(sapling: WasmSapling, xsk: Buffer | Uint8Array | string): Buffer {\n const xskBuffer: Buffer = bufferFrom(xsk, 'spendingKey', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.xfvkFromXsk(xskBuffer))\n}\n\nexport function __wasm__ovk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string): Buffer {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.ovkFromXfvk(xfvkBuffer))\n}\n\nexport function __wasm__ivk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string): Buffer {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.xfvkToIvk(xfvkBuffer))\n}\n","import { WasmSapling } from './types'\nimport { bufferFrom } from './utils'\n\nexport function __wasm__initParameters(\n sapling: WasmSapling,\n spendParams: Buffer | Uint8Array | string,\n outputParams: Buffer | Uint8Array | string\n) {\n const spendParamsBuffer: Buffer = bufferFrom(spendParams, 'spendParams', '`Buffer`, `Uint8Array` or hex string')\n const outputParamsBuffer: Buffer = bufferFrom(outputParams, 'outputParams', '`Buffer`, `Uint8Array` or hex string')\n\n sapling.initParams(spendParamsBuffer, outputParamsBuffer)\n}\n","import { WasmSapling } from '../types'\nimport { bufferFrom, stringFrom } from '../utils'\n\nexport function __wasm__bindingSignature(\n sapling: WasmSapling,\n context: number,\n valueBalance: string | number | BigInt,\n sighash: Buffer | Uint8Array | string\n): Buffer {\n const valueBalanceString: string = stringFrom(valueBalance, 'valueBalance', '`number`, `BigInt` or `string`')\n const sighashBuffer: Buffer = bufferFrom(sighash, 'sighash', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.bindingSignature(context, valueBalanceString, sighashBuffer))\n}\n","import { WasmSapling } from '../types'\nimport { bufferFrom, stringFrom } from '../utils'\n\nexport function __wasm__verifyCmu(\n sapling: WasmSapling, \n cmu: Buffer | Uint8Array | string,\n address: Buffer | Uint8Array | string,\n value: string | number | BigInt, \n rcm: Buffer | Uint8Array | string\n): boolean {\n const cmuBuffer: Buffer = bufferFrom(cmu, 'commitment', '`Buffer`, `Uint8Array` or hex string')\n const addresBuffer: Buffer = bufferFrom(address, 'address', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number`, `BigInt` or `string`')\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n\n const computedCmu: Buffer = Buffer.from(sapling.computeCommitment(addresBuffer, valueString, rcmBuffer))\n\n return cmuBuffer.equals(computedCmu)\n}","import { WasmSapling } from '../types'\nimport { bufferFrom, numberFrom } from '../utils'\n\nexport function __wasm__merkleHashForDepth(\n sapling: WasmSapling,\n depth: string | number,\n lhs: Buffer | Uint8Array | string,\n rhs: Buffer | Uint8Array | string\n): Buffer {\n const depthNum: number = numberFrom(depth)\n const lhsBuffer: Buffer = bufferFrom(lhs)\n const rhsBuffer: Buffer = bufferFrom(rhs)\n\n return Buffer.from(sapling.merkleHash(depthNum, lhsBuffer, rhsBuffer))\n}\n","import { WasmSapling } from '../types'\nimport { bufferFrom, stringFrom } from '../utils'\n\nexport function __wasm__computeNf(\n sapling: WasmSapling,\n xfvk: Buffer | Uint8Array | string, \n address: Buffer | Uint8Array | string, \n value: string | number | BigInt,\n rcm: Buffer | Uint8Array | string,\n position: string | number | BigInt\n): Buffer {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n const addressBuffer: Buffer = bufferFrom(address, 'address', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number`, `BigInt` or `string`')\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n const positionString: string = stringFrom(position, 'position', '`number`, `BigInt` or `string`')\n\n return Buffer.from(sapling.computeNullifier(xfvkBuffer, addressBuffer, valueString, rcmBuffer, positionString))\n}","import { SaplingOutputDescription, SaplingPartialOutputDescription, SaplingPaymentAddress } from '../../types'\n\nimport { WasmSapling } from '../types'\nimport { isPaymentAddress } from '../address/payment-address'\nimport { stringFrom, bufferFrom } from '../utils'\n\nexport function __wasm__outputDescriptionFromXfvk(\n sapling: WasmSapling,\n context: number,\n xfvk: Buffer | Uint8Array | string,\n to: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n memo?: Buffer | Uint8Array | string\n): SaplingOutputDescription {\n const xfvkBuffer: Buffer = bufferFrom(xfvk, 'viewingKey', '`Buffer`, `Uint8Array` or hex string')\n const toBuffer: Buffer = bufferFrom(\n isPaymentAddress(to) ? to.raw : to,\n 'destination',\n '`SaplingPaymentAddress`, `Buffer`, `Uint8Array` or hex string'\n )\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number`, `BigInt` or `string`')\n const memoBuffer: Buffer | undefined = memo !== undefined ? bufferFrom(memo, 'memo', '`Buffer`, `Uint8Array` or hex string') : undefined\n\n const outputDescription: Buffer = Buffer.from(\n memoBuffer !== undefined\n ? sapling.outputDescriptionFromXfvkWithMemo(context, xfvkBuffer, toBuffer, rcmBuffer, valueString, memoBuffer)\n : sapling.outputDescriptionFromXfvk(context, xfvkBuffer, toBuffer, rcmBuffer, valueString)\n )\n\n return {\n cv: outputDescription.slice(0, 32) /* 32 bytes */,\n cm: outputDescription.slice(32, 64) /* 32 bytes */,\n epk: outputDescription.slice(64, 96) /* 32 bytes */,\n cenc: outputDescription.slice(96, 676) /* 580 bytes */,\n cout: outputDescription.slice(676, 756) /* 80 bytes */,\n proof: outputDescription.slice(756, 948) /* 48 + 96 + 48 bytes */\n }\n}\n\nexport function __wasm__partialOutputDescription(\n sapling: WasmSapling,\n context: number,\n to: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n esk: Buffer | Uint8Array | string,\n value: string | number | BigInt\n): SaplingPartialOutputDescription {\n const toBuffer: Buffer = bufferFrom(\n isPaymentAddress(to) ? to.raw : to,\n 'destination',\n '`SaplingPaymentAddress`, `Buffer`, `Uint8Array` or hex string'\n )\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n const eskBuffer: Buffer = bufferFrom(esk, 'esk', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number`, `BigInt` or `string`')\n\n const outputDescription: Buffer = Buffer.from(sapling.partialOutputDescription(context, toBuffer, rcmBuffer, eskBuffer, valueString))\n\n return {\n cv: outputDescription.slice(0, 32) /* 32 bytes */,\n cm: outputDescription.slice(32, 64) /* 32 bytes */,\n proof: outputDescription.slice(64, 256) /* 48 + 96 + 48 bytes */\n }\n}\n\nexport function __wasm__deriveEpkFromEsk(\n sapling: WasmSapling, \n diversifier: Buffer | Uint8Array | string, \n esk: Buffer | Uint8Array | string\n): Buffer {\n const diversifierBuffer: Buffer = bufferFrom(diversifier, 'diversifier', '`Buffer`, `Uint8Array` or hex string')\n const eskBuffer: Buffer = bufferFrom(esk, 'esk', '`Buffer`, `Uint8Array` or hex string')\n\n return Buffer.from(sapling.deriveEpkFromEsk(diversifierBuffer, eskBuffer))\n}","import { SaplingPaymentAddress, SaplingSpendDescription, SaplingUnsignedSpendDescription } from '../../types'\n\nimport { WasmSapling } from '../types'\nimport { isPaymentAddress } from '../address/payment-address'\nimport { stringFrom, bufferFrom } from '../utils'\n\nexport function __wasm__spendDescriptionFromXsk(\n sapling: WasmSapling,\n context: number,\n xsk: Buffer | Uint8Array | string,\n address: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n anchor: Buffer | Uint8Array | string,\n merklePath: Buffer | Uint8Array | string\n): SaplingUnsignedSpendDescription {\n const xskBuffer: Buffer = bufferFrom(xsk, 'spendingKey', '`Buffer`, `Uint8Array` or hex string')\n const addressBuffer: Buffer = bufferFrom(\n isPaymentAddress(address) ? address.raw : address,\n 'address',\n '`SaplingPaymentAddress`, `Buffer`, `Uint8Array` or hex string'\n )\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n const arBuffer: Buffer = bufferFrom(ar, 'ar', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number` `BigInt` or `string`')\n const anchorBuffer: Buffer = bufferFrom(anchor, 'anchor', '`Buffer`, `Uint8Array` or hex string')\n const merklePathBuffer: Buffer = bufferFrom(merklePath, 'merklePath', '`Buffer`, `Uint8Array` or hex string')\n\n const spendDescription = Buffer.from(\n sapling.spendDescriptionFromXsk(\n context,\n xskBuffer,\n addressBuffer,\n rcmBuffer,\n arBuffer,\n valueString,\n anchorBuffer,\n merklePathBuffer\n )\n )\n\n return {\n cv: spendDescription.slice(0, 32) /* 32 bytes */,\n rt: spendDescription.slice(32, 64) /* 32 bytes */,\n nf: spendDescription.slice(64, 96) /* 32 bytes */,\n rk: spendDescription.slice(96, 128) /* 32 bytes */,\n proof: spendDescription.slice(128, 320) /* 48 + 96 + 48 bytes */\n }\n}\n\nexport function __wasm__spendDescriptionFromPak(\n sapling: WasmSapling,\n context: number,\n pak: Buffer | Uint8Array | string,\n address: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n anchor: Buffer | Uint8Array | string,\n merklePath: Buffer | Uint8Array | string\n): SaplingUnsignedSpendDescription {\n const pakBuffer: Buffer = bufferFrom(pak, 'authorizingKey', '`Buffer`, `Uint8Array` or hex string')\n const addressBuffer: Buffer = bufferFrom(\n isPaymentAddress(address) ? address.raw : address,\n 'address',\n '`SaplingPaymentAddress`, `Buffer`, `Uint8Array` or hex string'\n )\n const rcmBuffer: Buffer = bufferFrom(rcm, 'rcm', '`Buffer`, `Uint8Array` or hex string')\n const arBuffer: Buffer = bufferFrom(ar, 'ar', '`Buffer`, `Uint8Array` or hex string')\n const valueString: string = stringFrom(value, 'value', '`number` `BigInt` or `string`')\n const anchorBuffer: Buffer = bufferFrom(anchor, 'anchor', '`Buffer`, `Uint8Array` or hex string')\n const merklePathBuffer: Buffer = bufferFrom(merklePath, 'merklePath', '`Buffer`, `Uint8Array` or hex string')\n\n const spendDescription = Buffer.from(\n sapling.spendDescriptionFromPak(\n context,\n pakBuffer,\n addressBuffer,\n rcmBuffer,\n arBuffer,\n valueString,\n anchorBuffer,\n merklePathBuffer\n )\n )\n\n return {\n cv: spendDescription.slice(0, 32) /* 32 bytes */,\n rt: spendDescription.slice(32, 64) /* 32 bytes */,\n nf: spendDescription.slice(64, 96) /* 32 bytes */,\n rk: spendDescription.slice(96, 128) /* 32 bytes */,\n proof: spendDescription.slice(128, 320) /* 48 + 96 + 48 bytes */\n }\n}\n\nexport function __wasm__signSpendDescriptionWithXsk(\n sapling: WasmSapling,\n description: SaplingUnsignedSpendDescription,\n xsk: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n sighash: Buffer | Uint8Array | string\n): SaplingSpendDescription {\n const descriptionBuffer: Buffer = Buffer.concat([description.cv, description.rt, description.nf, description.rk, description.proof])\n const xskBuffer: Buffer = bufferFrom(xsk, 'spendingKey', '`Buffer`, `Uint8Array` or hex string')\n const arBuffer: Buffer = bufferFrom(ar, 'ar', '`Buffer`, `Uint8Array` or hex string')\n const sighashBuffer: Buffer = bufferFrom(sighash, 'sighash', '`Buffer`, `Uint8Array` or hex string')\n\n const signedDescription: Buffer = Buffer.from(sapling.signSpendDescriptionWithXsk(descriptionBuffer, xskBuffer, arBuffer, sighashBuffer))\n\n return {\n cv: signedDescription.slice(0, 32) /* 32 bytes */,\n rt: signedDescription.slice(32, 64) /* 32 bytes */,\n nf: signedDescription.slice(64, 96) /* 32 bytes */,\n rk: signedDescription.slice(96, 128) /* 32 bytes */,\n proof: signedDescription.slice(128, 320) /* 48 + 96 + 48 bytes */,\n spendAuthSig: signedDescription.slice(320, 384) /* 64 bytes */\n }\n}\n","/* Internal Utils */\n\n// Buffer\n\nexport function bufferFrom(value: Buffer | Uint8Array | string | number, name?: string, expectedType?: string): Buffer {\n if (Buffer.isBuffer(value)) {\n return value\n } else if (isHexString(value)) {\n return Buffer.from(value, 'hex')\n } else if (typeof value === 'number') {\n return numberToBytes(value)\n } else if (typeof value !== 'string' && value !== undefined && value !== null) {\n return Buffer.from(value)\n } else {\n throw invalidTypeError(name, expectedType)\n }\n}\n\nexport function bufferFromOfLength(\n value: Buffer | Uint8Array | string | number,\n minLength: number,\n name?: string,\n expectedType?: string\n): Buffer {\n let buffer = bufferFrom(value, name, expectedType)\n\n if (minLength === undefined || minLength <= buffer.byteLength) {\n return buffer\n }\n\n const leadingBuffer = Buffer.alloc(minLength - buffer.byteLength)\n leadingBuffer.fill(0)\n\n return Buffer.concat([leadingBuffer, buffer])\n}\n\nexport function numberToBytes(number: number): Buffer {\n const buffer = Buffer.alloc(4)\n buffer.fill(0)\n buffer.writeInt32BE(number)\n\n let firstNonZero = 0\n for (let i = 0; i < buffer.byteLength; i++) {\n if (buffer[0] !== 0x00) {\n firstNonZero = i\n break\n }\n }\n\n return firstNonZero > 0 ? buffer.slice(firstNonZero) : buffer\n}\n\n// String\n\nconst hexRe = /^(0x)?[0-9a-fA-F]*$/\nexport function isHexString(string: any): string is string {\n return typeof string === 'string' && hexRe.test(string)\n}\n\n// Number\n\nexport function numberFrom(value: number | string, name?: string, expectedType?: string): number {\n if (typeof value === 'number') {\n return value\n } else if (typeof value === 'string') {\n return parseInt(value)\n } else {\n throw invalidTypeError(name, expectedType)\n }\n}\n\nexport function stringFrom(value: number | string | BigInt, name?: string, expectedType?: string): string {\n if (typeof value === 'string') {\n return value\n } else if (typeof value === 'number' || typeof value === 'bigint') {\n return value.toString()\n } else {\n throw invalidTypeError(name, expectedType)\n }\n}\n\n// Error\n\nexport function uninitialized(): void {\n throw new Error('sapling-wasm uninitialized')\n}\n\nexport async function rejectPromise<T>(methodName: string, error: any): Promise<T> {\n return Promise.reject(typeof error === 'string' ? `${methodName}: ${error}` : error)\n}\n\nexport function invalidTypeError(name?: string, expectedType?: string): Error {\n return name !== undefined && expectedType !== undefined\n ? new Error(`\\`${name}\\` is of invalid type, expected ${expectedType}`)\n : new TypeError()\n}\n","import {\n getAddressFromXfvk,\n getDiversifierFromRawAddress,\n getNextAddressFromXfvk,\n getPkdFromRawAddress,\n getRawAddressFromIvk\n} from './internal/address/payment-address'\nimport { __wasm__pak_from_xsk } from './internal/key/authorizing-key'\nimport { __wasm__keyAgreement } from './internal/key/key-agreement'\nimport { __wasm__xsk } from './internal/key/spending-key'\nimport { __wasm__ivk, __wasm__ovk, __wasm__xfvk, __wasm__xfvkFromXsk } from './internal/key/viewing-key'\nimport { __wasm__initParameters } from './internal/parameters'\nimport { __wasm__bindingSignature } from './internal/transaction/binding-signature'\nimport { __wasm__verifyCmu } from './internal/transaction/commitment'\nimport { __wasm__merkleHashForDepth } from './internal/transaction/merkle-tree'\nimport { __wasm__computeNf } from './internal/transaction/nullifier'\nimport {\n __wasm__deriveEpkFromEsk,\n __wasm__outputDescriptionFromXfvk,\n __wasm__partialOutputDescription\n} from './internal/transaction/output-description'\nimport { __wasm__spendDescriptionFromXsk, __wasm__signSpendDescriptionWithXsk, __wasm__spendDescriptionFromPak } from './internal/transaction/spend-description'\nimport { WasmSapling } from './internal/types'\nimport { rejectPromise } from './internal/utils'\nimport {\n SaplingOutputDescription,\n SaplingPartialOutputDescription,\n SaplingPaymentAddress,\n SaplingSpendDescription,\n SaplingUnsignedSpendDescription\n} from './types'\n\nlet isInitialized: boolean = false\nconst saplingPromise: Promise<WasmSapling> = import('../pkg')\n .catch((error) => {\n console.error(error)\n throw new Error(`Could not load sapling-wasm: ${error}`)\n })\n\n/**\n * Initialize the library with specified sapling parameters.\n *\n * @param {Buffer|Uint8Array|string} spendParams The sapling spending parameters.\n * @param {Buffer|Uint8Array|string} outputParams The sapling output parameters.\n */\nexport async function initParameters(spendParams: Buffer | Uint8Array | string, outputParams: Buffer | Uint8Array | string): Promise<void> {\n try {\n if (!isInitialized) {\n const sapling: WasmSapling = await saplingPromise\n\n __wasm__initParameters(sapling, spendParams, outputParams)\n isInitialized = true\n }\n } catch (error) {\n return rejectPromise('init', error)\n }\n}\n\n/**\n * Create an extended spending key from the given seed.\n *\n * @param {Buffer|Uint8Array|string} seed A seed from which the key will be derived\n * @param {string} derivationPath A valid BIP39 derivation path\n * @returns {Buffer} The generated extended spending key\n */\n\nexport async function getExtendedSpendingKey(seed: Buffer | Uint8Array | string, derivationPath: string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__xsk(sapling, seed, derivationPath)\n } catch (error) {\n return rejectPromise('getExtendedSpendingKey', error)\n }\n}\n\n/**\n * Create an extended full viewing key from the given seed.\n *\n * @param {Buffer|Uint8Array|string} seed A seed from which the key will be derived\n * @param {string} derivationPath A valid BIP39 derivation path\n * @returns {Buffer} The generated extended full viewing key\n */\n\nexport async function getExtendedFullViewingKey(seed: Buffer | Uint8Array | string, derivationPath: string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__xfvk(sapling, seed, derivationPath)\n } catch (error) {\n return rejectPromise('getExtendedFullViewingKey', error)\n }\n}\n\n/**\n * Create a proof authorizing key from the given extended spending key.\n * \n * @param {Buffer|Uint8Array|string} spendingKey An extended spending key\n * @returns {Buffer} The generated proof authorizing key\n */\nexport async function getProofAuthorizingKey(spendingKey: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__pak_from_xsk(sapling, spendingKey)\n } catch (error) {\n return rejectPromise('getProofAuthorizingKey', error)\n }\n}\n\n/**\n * Create an extended full viewing key from the given extended spending key.\n * \n * @param {Buffer|Uint8Array|string} spendingKey An extended spending key\n * @returns {Buffer} The generated extended full viewing key\n */\nexport async function getExtendedFullViewingKeyFromSpendingKey(spendingKey: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__xfvkFromXsk(sapling, spendingKey)\n } catch (error) {\n return rejectPromise('getExtendedFullViewingKeyFromSpendingKey', error)\n }\n}\n\n/**\n * Derive an outgoing viewing key from extended full viewing key.\n * \n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key\n * @returns {Buffer} The derived outgoing viewing key\n */\nexport async function getOutgoingViewingKey(viewingKey: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__ovk(sapling, viewingKey)\n } catch (error) {\n return rejectPromise('getOutgoingViewingKey', error)\n }\n}\n\n/**\n * Derive an incoming viewing key from extended full viewing key.\n * \n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key\n * @returns {Buffer} The derived incoming viewing key\n */\nexport async function getIncomingViewingKey(viewingKey: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__ivk(sapling, viewingKey)\n } catch (error) {\n return rejectPromise('getIncomingViewingKey', error)\n }\n}\n\n/**\n * Derive a payment address from the given extended full viewing key.\n *\n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key\n * @param {Buffer|Uint8Array|string|number|undefined} [index] A 11-byte diversifier index used to determine which diversifier should be used to derive the address. If not present, a new diversifier index is created with a default value of [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]. If provided as bytes, it is expected to be in the little-endian (LE) format.\n * @returns {SaplingPaymentAddress} The derived payment address\n */\n\nexport async function getPaymentAddressFromViewingKey(\n viewingKey: Buffer | Uint8Array | string,\n index?: Buffer | Uint8Array | string | number | undefined\n): Promise<SaplingPaymentAddress> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return getAddressFromXfvk(sapling, viewingKey, index)\n } catch (error) {\n return rejectPromise('getPaymentAddressFromViewingKey', error)\n }\n}\n\n/** \n * Derive next valid payment address from the given extended full viewing key and current diversifier index.\n *\n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key\n * @param {Buffer|Uint8Array|string|number} index The last used 11-byte diversifier index. If provided as bytes, it is expected to be in the little-endian (LE) format.\n * @returns {SaplingPaymentAddress} The derived payment address\n */\n\nexport async function getNextPaymentAddressFromViewingKey(\n viewingKey: Buffer | Uint8Array | string,\n index: Buffer | Uint8Array | string | number\n): Promise<SaplingPaymentAddress> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return getNextAddressFromXfvk(sapling, viewingKey, index)\n } catch (error) {\n return rejectPromise('getNextPaymentAddressFromViewingKey', error)\n }\n}\n\n/**\n * Create a raw payment address value from the specified incoming viewing key and diversifier.\n * \n * @param {Buffer|Uint8Array|string} incomingViewingKey An incoming viewing key from which an address should be created\n * @param {Buffer|Uint8Array|string} diversifier The address diversifier\n * @returns {Buffer} The raw payment address\n */\nexport async function getRawPaymentAddressFromIncomingViewingKey(\n incomingViewingKey: Buffer | Uint8Array | string,\n diversifier: Buffer | Uint8Array | string\n): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return getRawAddressFromIvk(sapling, incomingViewingKey, diversifier)\n } catch (error) {\n return rejectPromise('getRawPaymentAddressFromIncomingViewingKey', error)\n }\n}\n\n/**\n * Get a diversifier from a raw payment address.\n * \n * @param {Buffer | Uint8Array | string} address A raw payment address\n * @returns {Buffer} The diversifier\n */\nexport async function getDiversifiedFromRawPaymentAddress(address: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return getDiversifierFromRawAddress(sapling, address)\n } catch (error) {\n return rejectPromise('getDiversifierFromRawPaymentAddress', error)\n }\n}\n\n/**\n * Get a pkd from a raw payment address.\n * \n * @param {Buffer | Uint8Array | string} address A raw payment address\n * @returns {Buffer} The diversifier\n */\nexport async function getPkdFromRawPaymentAddress(address: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return getPkdFromRawAddress(sapling, address)\n } catch (error) {\n return rejectPromise('getPkdFromRawPaymentAddress', error)\n }\n}\n\n/**\n * Execute action within a new sapling proving context.\n *\n * @function\n * @template T\n * @param {function(Object): T} action An action to be executed\n * @returns {T} Result returned by the action\n */\nexport async function withProvingContext<T>(action: (context: number) => Promise<T>): Promise<T> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n const context: number = sapling.initProvingContext()\n const result: T = await action(context)\n sapling.dropProvingContext(context)\n\n return result\n } catch (error) {\n return rejectPromise('withSaplingProvingContext', error)\n }\n}\n\n/**\n * Create a random scalar.\n *\n * @returns {Buffer} The generated scalar\n */\nexport async function randR(): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return Buffer.from(sapling.randR())\n } catch (error) {\n return rejectPromise('randR', error)\n }\n}\n\n/**\n * Create a binding signature.\n *\n * Must be called after all spend and output description has been created\n *\n * @param {number} context A pointer to sapling proving context\n * @param {string|number|BigInt} valueBalance\n * @param {Buffer|Uint8Array|string} sighash The data to be signed\n * @returns {Buffer} The created binding signature\n */\nexport async function createBindingSignature(\n context: number,\n valueBalance: string | number | BigInt,\n sighash: Buffer | Uint8Array | string\n): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__bindingSignature(sapling, context, valueBalance, sighash)\n } catch (error) {\n return rejectPromise('createBindingSignature', error)\n }\n}\n\n/**\n * Prepare an unsigned sapling spend description using an extended spending key.\n *\n * @param {number} context A pointer to sapling proving context\n * @param {Buffer|Uint8Array|string} spendingKey An extended spending key\n * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} address The address to which the input has been linked\n * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment\n * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key\n * @param {string|number|BigInt} value The value of the input\n * @param {Buffer|Uint8Array|string} anchor The root of the merkle tree\n * @param {Buffer|Uint8Array|string} merklePath The path of the commitment in the tree\n * @returns {SaplingUnsignedSpendDescription} The created unsinged spend description\n */\nexport async function prepareSpendDescriptionWithSpendingKey(\n context: number,\n spendingKey: Buffer | Uint8Array | string,\n address: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n anchor: Buffer | Uint8Array | string,\n merklePath: Buffer | Uint8Array | string\n): Promise<SaplingUnsignedSpendDescription> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__spendDescriptionFromXsk(sapling, context, spendingKey, address, rcm, ar, value, anchor, merklePath)\n } catch (error) {\n return rejectPromise('prepareSpendDescriptionWithSpendingKey', error)\n }\n}\n\n/**\n * Prepare an unsigned sapling spend description using a proof authorizing key.\n *\n * @param {number} context A pointer to sapling proving context\n * @param {Buffer|Uint8Array|string} authorizingKey A proof authorizing key\n * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} address The address to which the input has been linked\n * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment\n * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key\n * @param {string|number|BigInt} value The value of the input\n * @param {Buffer|Uint8Array|string} anchor The root of the merkle tree\n * @param {Buffer|Uint8Array|string} merklePath The path of the commitment in the tree\n * @returns {SaplingUnsignedSpendDescription} The created unsinged spend description\n */\n export async function prepareSpendDescriptionWithAuthorizingKey(\n context: number,\n authorizingKey: Buffer | Uint8Array | string,\n address: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n anchor: Buffer | Uint8Array | string,\n merklePath: Buffer | Uint8Array | string\n): Promise<SaplingUnsignedSpendDescription> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__spendDescriptionFromPak(sapling, context, authorizingKey, address, rcm, ar, value, anchor, merklePath)\n } catch (error) {\n return rejectPromise('prepareSpendDescriptionWithAuthorizingKey', error)\n }\n}\n\n/**\n * Sign an unsigned sapling spend description.\n *\n * @param {SaplingUnsignedSpendDescription} spendDescription An unsigned spend description\n * @param {Buffer|Uint8Array|string} spendingKey An extended spending key\n * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key\n * @param {Buffer|Uint8Array|string} sighash The data to be signed\n * @return {SaplingSpendDescription} The signed spend description\n */\nexport async function signSpendDescription(\n spendDescription: SaplingUnsignedSpendDescription,\n spendingKey: Buffer | Uint8Array | string,\n ar: Buffer | Uint8Array | string,\n sighash: Buffer | Uint8Array | string\n): Promise<SaplingSpendDescription> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__signSpendDescriptionWithXsk(sapling, spendDescription, spendingKey, ar, sighash)\n } catch (error) {\n return rejectPromise('signSpendDescription', error)\n }\n}\n\n/**\n * Prepare a sapling output description.\n *\n * @param {number} context A pointer to sapling proving context\n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key\n * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} destination The destination address\n * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment\n * @param {string|number|BigInt} value The value to transfer\n * @param {Buffer|Uint8Array|string|undefined} [memo] An optional message\n * @returns {SaplingOutputDescription} The created output description\n */\nexport async function prepareOutputDescription(\n context: number,\n viewingKey: Buffer | Uint8Array | string,\n destination: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n memo?: Buffer | Uint8Array | string | undefined\n): Promise<SaplingOutputDescription> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__outputDescriptionFromXfvk(sapling, context, viewingKey, destination, rcm, value, memo)\n } catch (error) {\n return rejectPromise('prepareOutputDescription', error)\n }\n}\n\n/**\n * Prepare a partial sapling output description.\n *\n * @param {number} context A pointer to sapling proving context\n * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} destination The destination address\n * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment\n * @param {Buffer|Uint8Array|string} ephemeralKey An ephemeral private key that will be used to create an output proof\n * @param {string|number|BigInt} value The value to transfer\n * @returns {SaplingPartialOutputDescription} The created partial output description\n */\nexport async function preparePartialOutputDescription(\n context: number,\n destination: SaplingPaymentAddress | Buffer | Uint8Array | string,\n rcm: Buffer | Uint8Array | string,\n ephemeralKey: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n): Promise<SaplingPartialOutputDescription> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__partialOutputDescription(sapling, context, destination, rcm, ephemeralKey, value)\n } catch (error) {\n return rejectPromise('preparePartialOutputDescription', error)\n }\n}\n\n/**\n * Derive an ephemeral public key from the specified address diversifier and ephemeral private key.\n * \n * @param {Buffer|Uint8Array|string} diversifier A payment address diversifier\n * @param {Buffer|Uint8Array|string} privateKey An ephemeral private key\n * @returns {Buffer} The derived ephemeral public key\n */\nexport async function deriveEphemeralPublicKey(\n diversifier: Buffer | Uint8Array | string, \n privateKey: Buffer | Uint8Array | string\n): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__deriveEpkFromEsk(sapling, diversifier, privateKey)\n } catch (error) {\n return rejectPromise('deriveEphemeralPublicKey', error)\n }\n}\n\n/**\n * Verify if the specified commitment is valid in the context of provided address, transfer value and rcm.\n * \n * @param {Buffer|Uint8Array|string} commitment The commitment to verify\n * @param {Buffer|Uint8Array|string} address The expected raw address\n * @param {string|number|BigInt} value The expected transfer value\n * @param {Buffer|Uint8Array|string} rcm The expected randomness of the commitment\n * @returns {boolean} `true` if commitment is valid, `false` otherwise\n */\nexport async function verifyCommitment(\n commitment: Buffer | Uint8Array | string,\n address: Buffer | Uint8Array | string, \n value: string | number | BigInt, \n rcm: Buffer | Uint8Array | string\n): Promise<boolean> {\n try {\n const sapling: WasmSapling = await saplingPromise\n \n return __wasm__verifyCmu(sapling, commitment, address, value, rcm)\n } catch (error) {\n return rejectPromise('verifyCommitment', error)\n }\n}\n\n/**\n * Compute a nullifier for the commitment.\n * \n * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key that is the owner of the commitment\n * @param {Buffer|Uint8Array|string} address The destination address of the commitment\n * @param {string|number|BigInt} value The transfer value of the commitment\n * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment\n * @param {string|number|BigInt} position The position of the commitment\n * @returns {Buffer} The computed nullifier\n */\nexport async function computeNullifier(\n viewingKey: Buffer | Uint8Array | string,\n address: Buffer | Uint8Array | string,\n value: string | number | BigInt,\n rcm: Buffer | Uint8Array | string,\n position: string | number | BigInt\n): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__computeNf(sapling, viewingKey, address, value, rcm, position)\n } catch (error) {\n return rejectPromise('computeNullifier', error)\n }\n}\n\n/**\n * Compute a Merkle Tree parent hash for the specified depth and its children.\n *\n * @param {string|number} depth The depth of the tree, cannot be larger than 62\n * @param {Buffer|Uint8Array|string} lhs A 32-byte child hash\n * @param {Buffer|Uint8Array|string} rhs A 32-byte child hash\n * @returns {Buffer} The computed parent hash\n */\nexport async function merkleHash(\n depth: string | number,\n lhs: Buffer | Uint8Array | string,\n rhs: Buffer | Uint8Array | string\n): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__merkleHashForDepth(sapling, depth, lhs, rhs)\n } catch (error) {\n return rejectPromise('merkleHash', error)\n }\n}\n\n/**\n * Compute a key agreement.\n * \n * @param {Buffer|Uint8Array|string} p A 32-byte point\n * @param {Buffer|Uint8Array|string} sk A 32-byte scalar\n * @returns {Buffer} The computed key agreement\n */\nexport async function keyAgreement(p: Buffer | Uint8Array | string, sk: Buffer | Uint8Array | string): Promise<Buffer> {\n try {\n const sapling: WasmSapling = await saplingPromise\n\n return __wasm__keyAgreement(sapling, p, sk)\n } catch (error) {\n return rejectPromise('keyAgreement', error)\n }\n}\n","/* @ts-self-types=\"./index.d.ts\" */\nimport * as wasm from \"./index_bg.wasm\";\nimport { __wbg_set_wasm } from \"./index_bg.js\";\n\n__wbg_set_wasm(wasm);\n\nexport {\n bindingSignature, computeCommitment, computeNullifier, defaultPaymentAddressFromXfvk, deriveEpkFromEsk, diversifierFromPaymentAddress, dropProvingContext, initParams, initProvingContext, keyAgreement, merkleHash, nextPaymentAddressFromXfvk, outputDescriptionFromOvk, outputDescriptionFromXfvk, outputDescriptionFromXfvkWithMemo, ovkFromXfvk, pakFromXsk, partialOutputDescription, paymentAddressFromIvk, paymentAddressFromXfvk, pkdFromPaymentAddress, randR, signSpendDescriptionWithXsk, spendDescriptionFromPak, spendDescriptionFromXsk, xfvk, xfvkFromXsk, xfvkToIvk, xsk\n} from \"./index_bg.js\";\n","/**\n * @param {number} ctx\n * @param {string} value_balance\n * @param {Uint8Array} sighash\n * @returns {Uint8Array}\n */\nexport function bindingSignature(ctx, value_balance, sighash) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(value_balance, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(sighash, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.bindingSignature(retptr, ctx, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} address\n * @param {string} value\n * @param {Uint8Array} rcm\n * @returns {Uint8Array}\n */\nexport function computeCommitment(address, value, rcm) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n wasm.computeCommitment(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v4 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v4;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @param {Uint8Array} address\n * @param {string} value\n * @param {Uint8Array} rcm\n * @param {string} position\n * @returns {Uint8Array}\n */\nexport function computeNullifier(xfvk, address, value, rcm, position) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(position, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len4 = WASM_VECTOR_LEN;\n wasm.computeNullifier(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v6 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v6;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @returns {Uint8Array}\n */\nexport function defaultPaymentAddressFromXfvk(xfvk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.defaultPaymentAddressFromXfvk(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} diversifier\n * @param {Uint8Array} esk\n * @returns {Uint8Array}\n */\nexport function deriveEpkFromEsk(diversifier, esk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(diversifier, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(esk, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.deriveEpkFromEsk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} address\n * @returns {Uint8Array}\n */\nexport function diversifierFromPaymentAddress(address) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.diversifierFromPaymentAddress(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n */\nexport function dropProvingContext(ctx) {\n wasm.dropProvingContext(ctx);\n}\n\n/**\n * @param {Uint8Array} spend_params\n * @param {Uint8Array} output_params\n */\nexport function initParams(spend_params, output_params) {\n const ptr0 = passArray8ToWasm0(spend_params, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(output_params, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.initParams(ptr0, len0, ptr1, len1);\n}\n\n/**\n * @returns {number}\n */\nexport function initProvingContext() {\n const ret = wasm.initProvingContext();\n return ret >>> 0;\n}\n\n/**\n * @param {Uint8Array} p\n * @param {Uint8Array} sk\n * @returns {Uint8Array}\n */\nexport function keyAgreement(p, sk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(p, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(sk, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.keyAgreement(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} depth\n * @param {Uint8Array} lhs\n * @param {Uint8Array} rhs\n * @returns {Uint8Array}\n */\nexport function merkleHash(depth, lhs, rhs) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(lhs, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(rhs, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.merkleHash(retptr, depth, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @param {Uint8Array} index\n * @returns {Uint8Array}\n */\nexport function nextPaymentAddressFromXfvk(xfvk, index) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(index, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.nextPaymentAddressFromXfvk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} ovk\n * @param {Uint8Array} to\n * @param {Uint8Array} rcm\n * @param {string} value\n * @returns {Uint8Array}\n */\nexport function outputDescriptionFromOvk(ctx, ovk, to, rcm, value) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(ovk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(to, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n wasm.outputDescriptionFromOvk(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v5 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v5;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} xfvk\n * @param {Uint8Array} to\n * @param {Uint8Array} rcm\n * @param {string} value\n * @returns {Uint8Array}\n */\nexport function outputDescriptionFromXfvk(ctx, xfvk, to, rcm, value) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(to, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n wasm.outputDescriptionFromXfvk(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v5 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v5;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} xfvk\n * @param {Uint8Array} to\n * @param {Uint8Array} rcm\n * @param {string} value\n * @param {Uint8Array} memo\n * @returns {Uint8Array}\n */\nexport function outputDescriptionFromXfvkWithMemo(ctx, xfvk, to, rcm, value, memo) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(to, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray8ToWasm0(memo, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n wasm.outputDescriptionFromXfvkWithMemo(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v6 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v6;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @returns {Uint8Array}\n */\nexport function ovkFromXfvk(xfvk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.ovkFromXfvk(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xsk\n * @returns {Uint8Array}\n */\nexport function pakFromXsk(xsk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xsk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.pakFromXsk(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} to\n * @param {Uint8Array} rcm\n * @param {Uint8Array} esk\n * @param {string} value\n * @returns {Uint8Array}\n */\nexport function partialOutputDescription(ctx, to, rcm, esk, value) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(to, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(esk, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len3 = WASM_VECTOR_LEN;\n wasm.partialOutputDescription(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v5 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v5;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} ivk\n * @param {Uint8Array} diversifier\n * @returns {Uint8Array}\n */\nexport function paymentAddressFromIvk(ivk, diversifier) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(ivk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(diversifier, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.paymentAddressFromIvk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @param {Uint8Array} index\n * @returns {Uint8Array}\n */\nexport function paymentAddressFromXfvk(xfvk, index) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(index, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.paymentAddressFromXfvk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} address\n * @returns {Uint8Array}\n */\nexport function pkdFromPaymentAddress(address) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.pkdFromPaymentAddress(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @returns {Uint8Array}\n */\nexport function randR() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.randR(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v1 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} spend_description\n * @param {Uint8Array} xsk\n * @param {Uint8Array} ar\n * @param {Uint8Array} sighash\n * @returns {Uint8Array}\n */\nexport function signSpendDescriptionWithXsk(spend_description, xsk, ar, sighash) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(spend_description, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(xsk, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(ar, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(sighash, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n wasm.signSpendDescriptionWithXsk(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v5 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v5;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} pak\n * @param {Uint8Array} address\n * @param {Uint8Array} rcm\n * @param {Uint8Array} ar\n * @param {string} value\n * @param {Uint8Array} anchor\n * @param {Uint8Array} merkle_path\n * @returns {Uint8Array}\n */\nexport function spendDescriptionFromPak(ctx, pak, address, rcm, ar, value, anchor, merkle_path) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(pak, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(ar, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray8ToWasm0(anchor, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray8ToWasm0(merkle_path, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n wasm.spendDescriptionFromPak(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v8 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v8;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} ctx\n * @param {Uint8Array} xsk\n * @param {Uint8Array} address\n * @param {Uint8Array} rcm\n * @param {Uint8Array} ar\n * @param {string} value\n * @param {Uint8Array} anchor\n * @param {Uint8Array} merkle_path\n * @returns {Uint8Array}\n */\nexport function spendDescriptionFromXsk(ctx, xsk, address, rcm, ar, value, anchor, merkle_path) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xsk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(address, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(rcm, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(ar, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray8ToWasm0(anchor, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray8ToWasm0(merkle_path, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n wasm.spendDescriptionFromXsk(retptr, ctx, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v8 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v8;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} seed\n * @param {string} derivation_path\n * @returns {Uint8Array}\n */\nexport function xfvk(seed, derivation_path) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(derivation_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.xfvk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xsk\n * @returns {Uint8Array}\n */\nexport function xfvkFromXsk(xsk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xsk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.xfvkFromXsk(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} xfvk\n * @returns {Uint8Array}\n */\nexport function xfvkToIvk(xfvk) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(xfvk, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.xfvkToIvk(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v2 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {Uint8Array} seed\n * @param {string} derivation_path\n * @returns {Uint8Array}\n */\nexport function xsk(seed, derivation_path) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(derivation_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.xsk(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n var v3 = getArrayU8FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 1, 1);\n return v3;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\nexport function __wbg___wbindgen_is_undefined_29a43b4d42920abd(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n}\nexport function __wbg___wbindgen_jsval_eq_d3465d8a07697228(arg0, arg1) {\n const ret = getObject(arg0) === getObject(arg1);\n return ret;\n}\nexport function __wbg___wbindgen_throw_6b64449b9b9ed33c(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n}\nexport function __wbg_call_35fced0c5d547197(arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n}\nexport function __wbg_crypto_d5a4f97bc1e730be(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n}\nexport function __wbg_error_a6fa202b58aa1cd3(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n}\nexport function __wbg_getRandomValues_680fcbbe99884ebf(arg0, arg1, arg2) {\n getObject(arg0).getRandomValues(getArrayU8FromWasm0(arg1, arg2));\n}\nexport function __wbg_getRandomValues_9f2ca9212437fb59(arg0) {\n const ret = getObject(arg0).getRandomValues;\n return addHeapObject(ret);\n}\nexport function __wbg_new_227d7c05414eb861() {\n const ret = new Error();\n return addHeapObject(ret);\n}\nexport function __wbg_new_38b03192765bae5c(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n}\nexport function __wbg_randomFillSync_4b9cef44379f1fb6(arg0, arg1, arg2) {\n getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2));\n}\nexport function __wbg_require_b89b628d42467fda(arg0, arg1) {\n const ret = require(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n}\nexport function __wbg_self_99971d8dad2fa761(arg0) {\n const ret = getObject(arg0).self;\n return addHeapObject(ret);\n}\nexport function __wbg_stack_3b0d974bbf31e44f(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n}\nexport function __wbindgen_cast_0000000000000001(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n}\nexport function __wbindgen_object_drop_ref(arg0) {\n takeObject(arg0);\n}\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction dropObject(idx) {\n if (idx < 1028) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap = new Array(1024).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\n\nlet wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.v = (exports, wasmModuleId, wasmModuleHash, importsObj) => {\n\n\treturn new Promise(function (resolve, reject) {\n\t\ttry {\n\t\t\tvar { readFile } = require(\"node:fs\");\n\t\t\tvar { join } = require(\"node:path\");\n\n\t\t\treadFile(join(__dirname, \"\" + wasmModuleHash + \".module.wasm\"), function(err, buffer){\n\t\t\t\tif (err) return reject(err);\n\n\t\t\t\t// Fake fetch response\n\t\t\t\tresolve({\n\t\t\t\t\tarrayBuffer() { return buffer; }\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (err) { reject(err); }\n\t})\n\t\t.then((x) => (x.arrayBuffer()))\n\t\t.then((bytes) => (WebAssembly.instantiate(bytes, importsObj)))\n\t\t.then((res) => (Object.assign(exports, res.instance.exports)));\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(783);\n"],"names":["hasSymbol","webpackQueues","webpackExports","webpackError","resolveQueue","sapling","xfvk","index","xfvkBuffer","bufferFrom","indexBuffer","undefined","bufferFromOfLength","reverse","address","Buffer","from","paymentAddressFromXfvk","defaultPaymentAddressFromXfvk","slice","raw","nextPaymentAddressFromXfvk","Object","ivk","diversifier","ivkBuffer","diversifierBuffer","paymentAddressFromIvk","addressBuffer","diversifierFromPaymentAddress","pkdFromPaymentAddress","xsk","xskBuffer","pakFromXsk","p","sk","pBuffer","skBuffer","keyAgreement","seed","derivationPath","seedBuffer","xfvkFromXsk","ovkFromXfvk","xfvkToIvk","spendParams","outputParams","spendParamsBuffer","outputParamsBuffer","initParams","context","valueBalance","sighash","valueBalanceString","stringFrom","sighashBuffer","bindingSignature","cmu","value","rcm","cmuBuffer","addresBuffer","valueString","rcmBuffer","computedCmu","computeCommitment","equals","depth","lhs","rhs","depthNum","numberFrom","lhsBuffer","rhsBuffer","merkleHash","position","positionString","computeNullifier","to","memo","toBuffer","isPaymentAddress","memoBuffer","outputDescription","outputDescriptionFromXfvkWithMemo","outputDescriptionFromXfvk","cv","cm","epk","cenc","cout","proof","esk","eskBuffer","partialOutputDescription","deriveEpkFromEsk","ar","anchor","merklePath","arBuffer","anchorBuffer","merklePathBuffer","spendDescription","spendDescriptionFromXsk","rt","nf","rk","pak","pakBuffer","spendDescriptionFromPak","description","descriptionBuffer","concat","signedDescription","signSpendDescriptionWithXsk","spendAuthSig","name","expectedType","isBuffer","isHexString","numberToBytes","invalidTypeError","number","buffer","alloc","fill","writeInt32BE","firstNonZero","i","byteLength","minLength","leadingBuffer","parseInt","toString","Error","async","methodName","error","Promise","reject","hexRe","string","test","TypeError","isInitialized","saplingPromise","__wasm__initParameters","rejectPromise","__wasm__xsk","__wasm__xfvk","spendingKey","__wasm__pak_from_xsk","__wasm__xfvkFromXsk","viewingKey","__wasm__ovk","__wasm__ivk","getAddressFromXfvk","getNextAddressFromXfvk","incomingViewingKey","getRawAddressFromIvk","getDiversifierFromRawAddress","getPkdFromRawAddress","action","initProvingContext","result","dropProvingContext","randR","__wasm__bindingSignature","__wasm__spendDescriptionFromXsk","authorizingKey","__wasm__spendDescriptionFromPak","__wasm__signSpendDescriptionWithXsk","destination","__wasm__outputDescriptionFromXfvk","ephemeralKey","__wasm__partialOutputDescription","privateKey","__wasm__deriveEpkFromEsk","commitment","__wasm__verifyCmu","__wasm__computeNf","__wasm__merkleHashForDepth","__wasm__keyAgreement","catch","console","ctx","value_balance","retptr","wasm","__wbindgen_add_to_stack_pointer","ptr0","passStringToWasm0","__wbindgen_malloc","__wbindgen_realloc","len0","WASM_VECTOR_LEN","ptr1","passArray8ToWasm0","len1","r0","getDataViewMemory0","getInt32","r1","r2","takeObject","v3","getArrayU8FromWasm0","__wbindgen_free","ptr2","len2","v4","ptr3","len3","ptr4","len4","v6","v2","spend_params","output_params","outputDescriptionFromOvk","ovk","v5","v1","spend_description","merkle_path","ptr5","len5","ptr6","len6","v8","derivation_path","__wbg___wbindgen_is_undefined_29a43b4d42920abd","arg0","getObject","__wbg___wbindgen_jsval_eq_d3465d8a07697228","arg1","__wbg___wbindgen_throw_6b64449b9b9ed33c","getStringFromWasm0","__wbg_call_35fced0c5d547197","addHeapObject","call","__wbg_crypto_d5a4f97bc1e730be","crypto","__wbg_error_a6fa202b58aa1cd3","deferred0_0","deferred0_1","__wbg_getRandomValues_680fcbbe99884ebf","arg2","getRandomValues","__wbg_getRandomValues_9f2ca9212437fb59","__wbg_new_227d7c05414eb861","__wbg_new_38b03192765bae5c","Function","__wbg_randomFillSync_4b9cef44379f1fb6","randomFillSync","__wbg_require_b89b628d42467fda","require","__wbg_self_99971d8dad2fa761","self","__wbg_stack_3b0d974bbf31e44f","stack","setInt32","__wbindgen_cast_0000000000000001","__wbindgen_object_drop_ref","obj","heap_next","heap","length","push","idx","ptr","len","getUint8ArrayMemory0","subarray","cachedDataViewMemory0","detached","memory","DataView","numBytesDecoded","MAX_SAFARI_DECODE_BYTES","cachedTextDecoder","TextDecoder","ignoreBOM","fatal","decode","decodeText","cachedUint8ArrayMemory0","Uint8Array","Array","arg","malloc","set","realloc","buf","cachedTextEncoder","encode","mem","offset","code","charCodeAt","view","encodeInto","written","ret","dropObject","TextEncoder","read","__wbg_set_wasm","val","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","__webpack_modules__","Symbol","queue","d","forEach","fn","r","a","body","hasAwait","currentDeps","outerResolve","depQueues","Set","promise","resolve","rej","x","deps","map","dep","then","e","wrapDeps","getResult","fnQueue","q","has","add","err","definition","key","o","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","toStringTag","__webpack_require__.v#0","v","wasmModuleId","wasmModuleHash","importsObj","__webpack_exports__"],"sourceRoot":""}
@@ -0,0 +1,8 @@
1
+ import { SaplingPaymentAddress } from '../../types';
2
+ import { WasmSapling } from '../types';
3
+ export declare function getAddressFromXfvk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string, index: Buffer | Uint8Array | string | number | undefined): SaplingPaymentAddress;
4
+ export declare function getNextAddressFromXfvk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string, index: Buffer | Uint8Array | string | number): SaplingPaymentAddress;
5
+ export declare function isPaymentAddress(address: unknown): address is SaplingPaymentAddress;
6
+ export declare function getRawAddressFromIvk(sapling: WasmSapling, ivk: Buffer | Uint8Array | string, diversifier: Buffer | Uint8Array | string): Buffer;
7
+ export declare function getDiversifierFromRawAddress(sapling: WasmSapling, address: Buffer | Uint8Array | string): Buffer;
8
+ export declare function getPkdFromRawAddress(sapling: WasmSapling, address: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__pak_from_xsk(sapling: WasmSapling, xsk: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__keyAgreement(sapling: WasmSapling, p: Buffer | Uint8Array | string, sk: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__xsk(sapling: WasmSapling, seed: Buffer | Uint8Array | string, derivationPath: string): Buffer;
@@ -0,0 +1,5 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__xfvk(sapling: WasmSapling, seed: Buffer | Uint8Array | string, derivationPath: string): Buffer;
3
+ export declare function __wasm__xfvkFromXsk(sapling: WasmSapling, xsk: Buffer | Uint8Array | string): Buffer;
4
+ export declare function __wasm__ovk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string): Buffer;
5
+ export declare function __wasm__ivk(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from './types';
2
+ export declare function __wasm__initParameters(sapling: WasmSapling, spendParams: Buffer | Uint8Array | string, outputParams: Buffer | Uint8Array | string): void;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__bindingSignature(sapling: WasmSapling, context: number, valueBalance: string | number | BigInt, sighash: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__verifyCmu(sapling: WasmSapling, cmu: Buffer | Uint8Array | string, address: Buffer | Uint8Array | string, value: string | number | BigInt, rcm: Buffer | Uint8Array | string): boolean;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__merkleHashForDepth(sapling: WasmSapling, depth: string | number, lhs: Buffer | Uint8Array | string, rhs: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,2 @@
1
+ import { WasmSapling } from '../types';
2
+ export declare function __wasm__computeNf(sapling: WasmSapling, xfvk: Buffer | Uint8Array | string, address: Buffer | Uint8Array | string, value: string | number | BigInt, rcm: Buffer | Uint8Array | string, position: string | number | BigInt): Buffer;
@@ -0,0 +1,5 @@
1
+ import { SaplingOutputDescription, SaplingPartialOutputDescription, SaplingPaymentAddress } from '../../types';
2
+ import { WasmSapling } from '../types';
3
+ export declare function __wasm__outputDescriptionFromXfvk(sapling: WasmSapling, context: number, xfvk: Buffer | Uint8Array | string, to: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, value: string | number | BigInt, memo?: Buffer | Uint8Array | string): SaplingOutputDescription;
4
+ export declare function __wasm__partialOutputDescription(sapling: WasmSapling, context: number, to: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, esk: Buffer | Uint8Array | string, value: string | number | BigInt): SaplingPartialOutputDescription;
5
+ export declare function __wasm__deriveEpkFromEsk(sapling: WasmSapling, diversifier: Buffer | Uint8Array | string, esk: Buffer | Uint8Array | string): Buffer;
@@ -0,0 +1,5 @@
1
+ import { SaplingPaymentAddress, SaplingSpendDescription, SaplingUnsignedSpendDescription } from '../../types';
2
+ import { WasmSapling } from '../types';
3
+ export declare function __wasm__spendDescriptionFromXsk(sapling: WasmSapling, context: number, xsk: Buffer | Uint8Array | string, address: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, value: string | number | BigInt, anchor: Buffer | Uint8Array | string, merklePath: Buffer | Uint8Array | string): SaplingUnsignedSpendDescription;
4
+ export declare function __wasm__spendDescriptionFromPak(sapling: WasmSapling, context: number, pak: Buffer | Uint8Array | string, address: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, value: string | number | BigInt, anchor: Buffer | Uint8Array | string, merklePath: Buffer | Uint8Array | string): SaplingUnsignedSpendDescription;
5
+ export declare function __wasm__signSpendDescriptionWithXsk(sapling: WasmSapling, description: SaplingUnsignedSpendDescription, xsk: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, sighash: Buffer | Uint8Array | string): SaplingSpendDescription;
@@ -0,0 +1,2 @@
1
+ import type * as sapling from '../../pkg';
2
+ export type WasmSapling = typeof sapling;
@@ -0,0 +1,9 @@
1
+ export declare function bufferFrom(value: Buffer | Uint8Array | string | number, name?: string, expectedType?: string): Buffer;
2
+ export declare function bufferFromOfLength(value: Buffer | Uint8Array | string | number, minLength: number, name?: string, expectedType?: string): Buffer;
3
+ export declare function numberToBytes(number: number): Buffer;
4
+ export declare function isHexString(string: any): string is string;
5
+ export declare function numberFrom(value: number | string, name?: string, expectedType?: string): number;
6
+ export declare function stringFrom(value: number | string | BigInt, name?: string, expectedType?: string): string;
7
+ export declare function uninitialized(): void;
8
+ export declare function rejectPromise<T>(methodName: string, error: any): Promise<T>;
9
+ export declare function invalidTypeError(name?: string, expectedType?: string): Error;
@@ -0,0 +1,223 @@
1
+ import { SaplingOutputDescription, SaplingPartialOutputDescription, SaplingPaymentAddress, SaplingSpendDescription, SaplingUnsignedSpendDescription } from './types';
2
+ /**
3
+ * Initialize the library with specified sapling parameters.
4
+ *
5
+ * @param {Buffer|Uint8Array|string} spendParams The sapling spending parameters.
6
+ * @param {Buffer|Uint8Array|string} outputParams The sapling output parameters.
7
+ */
8
+ export declare function initParameters(spendParams: Buffer | Uint8Array | string, outputParams: Buffer | Uint8Array | string): Promise<void>;
9
+ /**
10
+ * Create an extended spending key from the given seed.
11
+ *
12
+ * @param {Buffer|Uint8Array|string} seed A seed from which the key will be derived
13
+ * @param {string} derivationPath A valid BIP39 derivation path
14
+ * @returns {Buffer} The generated extended spending key
15
+ */
16
+ export declare function getExtendedSpendingKey(seed: Buffer | Uint8Array | string, derivationPath: string): Promise<Buffer>;
17
+ /**
18
+ * Create an extended full viewing key from the given seed.
19
+ *
20
+ * @param {Buffer|Uint8Array|string} seed A seed from which the key will be derived
21
+ * @param {string} derivationPath A valid BIP39 derivation path
22
+ * @returns {Buffer} The generated extended full viewing key
23
+ */
24
+ export declare function getExtendedFullViewingKey(seed: Buffer | Uint8Array | string, derivationPath: string): Promise<Buffer>;
25
+ /**
26
+ * Create a proof authorizing key from the given extended spending key.
27
+ *
28
+ * @param {Buffer|Uint8Array|string} spendingKey An extended spending key
29
+ * @returns {Buffer} The generated proof authorizing key
30
+ */
31
+ export declare function getProofAuthorizingKey(spendingKey: Buffer | Uint8Array | string): Promise<Buffer>;
32
+ /**
33
+ * Create an extended full viewing key from the given extended spending key.
34
+ *
35
+ * @param {Buffer|Uint8Array|string} spendingKey An extended spending key
36
+ * @returns {Buffer} The generated extended full viewing key
37
+ */
38
+ export declare function getExtendedFullViewingKeyFromSpendingKey(spendingKey: Buffer | Uint8Array | string): Promise<Buffer>;
39
+ /**
40
+ * Derive an outgoing viewing key from extended full viewing key.
41
+ *
42
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key
43
+ * @returns {Buffer} The derived outgoing viewing key
44
+ */
45
+ export declare function getOutgoingViewingKey(viewingKey: Buffer | Uint8Array | string): Promise<Buffer>;
46
+ /**
47
+ * Derive an incoming viewing key from extended full viewing key.
48
+ *
49
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key
50
+ * @returns {Buffer} The derived incoming viewing key
51
+ */
52
+ export declare function getIncomingViewingKey(viewingKey: Buffer | Uint8Array | string): Promise<Buffer>;
53
+ /**
54
+ * Derive a payment address from the given extended full viewing key.
55
+ *
56
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key
57
+ * @param {Buffer|Uint8Array|string|number|undefined} [index] A 11-byte diversifier index used to determine which diversifier should be used to derive the address. If not present, a new diversifier index is created with a default value of [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]. If provided as bytes, it is expected to be in the little-endian (LE) format.
58
+ * @returns {SaplingPaymentAddress} The derived payment address
59
+ */
60
+ export declare function getPaymentAddressFromViewingKey(viewingKey: Buffer | Uint8Array | string, index?: Buffer | Uint8Array | string | number | undefined): Promise<SaplingPaymentAddress>;
61
+ /**
62
+ * Derive next valid payment address from the given extended full viewing key and current diversifier index.
63
+ *
64
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key
65
+ * @param {Buffer|Uint8Array|string|number} index The last used 11-byte diversifier index. If provided as bytes, it is expected to be in the little-endian (LE) format.
66
+ * @returns {SaplingPaymentAddress} The derived payment address
67
+ */
68
+ export declare function getNextPaymentAddressFromViewingKey(viewingKey: Buffer | Uint8Array | string, index: Buffer | Uint8Array | string | number): Promise<SaplingPaymentAddress>;
69
+ /**
70
+ * Create a raw payment address value from the specified incoming viewing key and diversifier.
71
+ *
72
+ * @param {Buffer|Uint8Array|string} incomingViewingKey An incoming viewing key from which an address should be created
73
+ * @param {Buffer|Uint8Array|string} diversifier The address diversifier
74
+ * @returns {Buffer} The raw payment address
75
+ */
76
+ export declare function getRawPaymentAddressFromIncomingViewingKey(incomingViewingKey: Buffer | Uint8Array | string, diversifier: Buffer | Uint8Array | string): Promise<Buffer>;
77
+ /**
78
+ * Get a diversifier from a raw payment address.
79
+ *
80
+ * @param {Buffer | Uint8Array | string} address A raw payment address
81
+ * @returns {Buffer} The diversifier
82
+ */
83
+ export declare function getDiversifiedFromRawPaymentAddress(address: Buffer | Uint8Array | string): Promise<Buffer>;
84
+ /**
85
+ * Get a pkd from a raw payment address.
86
+ *
87
+ * @param {Buffer | Uint8Array | string} address A raw payment address
88
+ * @returns {Buffer} The diversifier
89
+ */
90
+ export declare function getPkdFromRawPaymentAddress(address: Buffer | Uint8Array | string): Promise<Buffer>;
91
+ /**
92
+ * Execute action within a new sapling proving context.
93
+ *
94
+ * @function
95
+ * @template T
96
+ * @param {function(Object): T} action An action to be executed
97
+ * @returns {T} Result returned by the action
98
+ */
99
+ export declare function withProvingContext<T>(action: (context: number) => Promise<T>): Promise<T>;
100
+ /**
101
+ * Create a random scalar.
102
+ *
103
+ * @returns {Buffer} The generated scalar
104
+ */
105
+ export declare function randR(): Promise<Buffer>;
106
+ /**
107
+ * Create a binding signature.
108
+ *
109
+ * Must be called after all spend and output description has been created
110
+ *
111
+ * @param {number} context A pointer to sapling proving context
112
+ * @param {string|number|BigInt} valueBalance
113
+ * @param {Buffer|Uint8Array|string} sighash The data to be signed
114
+ * @returns {Buffer} The created binding signature
115
+ */
116
+ export declare function createBindingSignature(context: number, valueBalance: string | number | BigInt, sighash: Buffer | Uint8Array | string): Promise<Buffer>;
117
+ /**
118
+ * Prepare an unsigned sapling spend description using an extended spending key.
119
+ *
120
+ * @param {number} context A pointer to sapling proving context
121
+ * @param {Buffer|Uint8Array|string} spendingKey An extended spending key
122
+ * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} address The address to which the input has been linked
123
+ * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment
124
+ * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key
125
+ * @param {string|number|BigInt} value The value of the input
126
+ * @param {Buffer|Uint8Array|string} anchor The root of the merkle tree
127
+ * @param {Buffer|Uint8Array|string} merklePath The path of the commitment in the tree
128
+ * @returns {SaplingUnsignedSpendDescription} The created unsinged spend description
129
+ */
130
+ export declare function prepareSpendDescriptionWithSpendingKey(context: number, spendingKey: Buffer | Uint8Array | string, address: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, value: string | number | BigInt, anchor: Buffer | Uint8Array | string, merklePath: Buffer | Uint8Array | string): Promise<SaplingUnsignedSpendDescription>;
131
+ /**
132
+ * Prepare an unsigned sapling spend description using a proof authorizing key.
133
+ *
134
+ * @param {number} context A pointer to sapling proving context
135
+ * @param {Buffer|Uint8Array|string} authorizingKey A proof authorizing key
136
+ * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} address The address to which the input has been linked
137
+ * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment
138
+ * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key
139
+ * @param {string|number|BigInt} value The value of the input
140
+ * @param {Buffer|Uint8Array|string} anchor The root of the merkle tree
141
+ * @param {Buffer|Uint8Array|string} merklePath The path of the commitment in the tree
142
+ * @returns {SaplingUnsignedSpendDescription} The created unsinged spend description
143
+ */
144
+ export declare function prepareSpendDescriptionWithAuthorizingKey(context: number, authorizingKey: Buffer | Uint8Array | string, address: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, value: string | number | BigInt, anchor: Buffer | Uint8Array | string, merklePath: Buffer | Uint8Array | string): Promise<SaplingUnsignedSpendDescription>;
145
+ /**
146
+ * Sign an unsigned sapling spend description.
147
+ *
148
+ * @param {SaplingUnsignedSpendDescription} spendDescription An unsigned spend description
149
+ * @param {Buffer|Uint8Array|string} spendingKey An extended spending key
150
+ * @param {Buffer|Uint8Array|string} ar Re-randomization of the public key
151
+ * @param {Buffer|Uint8Array|string} sighash The data to be signed
152
+ * @return {SaplingSpendDescription} The signed spend description
153
+ */
154
+ export declare function signSpendDescription(spendDescription: SaplingUnsignedSpendDescription, spendingKey: Buffer | Uint8Array | string, ar: Buffer | Uint8Array | string, sighash: Buffer | Uint8Array | string): Promise<SaplingSpendDescription>;
155
+ /**
156
+ * Prepare a sapling output description.
157
+ *
158
+ * @param {number} context A pointer to sapling proving context
159
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key
160
+ * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} destination The destination address
161
+ * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment
162
+ * @param {string|number|BigInt} value The value to transfer
163
+ * @param {Buffer|Uint8Array|string|undefined} [memo] An optional message
164
+ * @returns {SaplingOutputDescription} The created output description
165
+ */
166
+ export declare function prepareOutputDescription(context: number, viewingKey: Buffer | Uint8Array | string, destination: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, value: string | number | BigInt, memo?: Buffer | Uint8Array | string | undefined): Promise<SaplingOutputDescription>;
167
+ /**
168
+ * Prepare a partial sapling output description.
169
+ *
170
+ * @param {number} context A pointer to sapling proving context
171
+ * @param {SaplingPaymentAddress|Buffer|Uint8Array|string} destination The destination address
172
+ * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment
173
+ * @param {Buffer|Uint8Array|string} ephemeralKey An ephemeral private key that will be used to create an output proof
174
+ * @param {string|number|BigInt} value The value to transfer
175
+ * @returns {SaplingPartialOutputDescription} The created partial output description
176
+ */
177
+ export declare function preparePartialOutputDescription(context: number, destination: SaplingPaymentAddress | Buffer | Uint8Array | string, rcm: Buffer | Uint8Array | string, ephemeralKey: Buffer | Uint8Array | string, value: string | number | BigInt): Promise<SaplingPartialOutputDescription>;
178
+ /**
179
+ * Derive an ephemeral public key from the specified address diversifier and ephemeral private key.
180
+ *
181
+ * @param {Buffer|Uint8Array|string} diversifier A payment address diversifier
182
+ * @param {Buffer|Uint8Array|string} privateKey An ephemeral private key
183
+ * @returns {Buffer} The derived ephemeral public key
184
+ */
185
+ export declare function deriveEphemeralPublicKey(diversifier: Buffer | Uint8Array | string, privateKey: Buffer | Uint8Array | string): Promise<Buffer>;
186
+ /**
187
+ * Verify if the specified commitment is valid in the context of provided address, transfer value and rcm.
188
+ *
189
+ * @param {Buffer|Uint8Array|string} commitment The commitment to verify
190
+ * @param {Buffer|Uint8Array|string} address The expected raw address
191
+ * @param {string|number|BigInt} value The expected transfer value
192
+ * @param {Buffer|Uint8Array|string} rcm The expected randomness of the commitment
193
+ * @returns {boolean} `true` if commitment is valid, `false` otherwise
194
+ */
195
+ export declare function verifyCommitment(commitment: Buffer | Uint8Array | string, address: Buffer | Uint8Array | string, value: string | number | BigInt, rcm: Buffer | Uint8Array | string): Promise<boolean>;
196
+ /**
197
+ * Compute a nullifier for the commitment.
198
+ *
199
+ * @param {Buffer|Uint8Array|string} viewingKey An extended full viewing key that is the owner of the commitment
200
+ * @param {Buffer|Uint8Array|string} address The destination address of the commitment
201
+ * @param {string|number|BigInt} value The transfer value of the commitment
202
+ * @param {Buffer|Uint8Array|string} rcm The randomness of the commitment
203
+ * @param {string|number|BigInt} position The position of the commitment
204
+ * @returns {Buffer} The computed nullifier
205
+ */
206
+ export declare function computeNullifier(viewingKey: Buffer | Uint8Array | string, address: Buffer | Uint8Array | string, value: string | number | BigInt, rcm: Buffer | Uint8Array | string, position: string | number | BigInt): Promise<Buffer>;
207
+ /**
208
+ * Compute a Merkle Tree parent hash for the specified depth and its children.
209
+ *
210
+ * @param {string|number} depth The depth of the tree, cannot be larger than 62
211
+ * @param {Buffer|Uint8Array|string} lhs A 32-byte child hash
212
+ * @param {Buffer|Uint8Array|string} rhs A 32-byte child hash
213
+ * @returns {Buffer} The computed parent hash
214
+ */
215
+ export declare function merkleHash(depth: string | number, lhs: Buffer | Uint8Array | string, rhs: Buffer | Uint8Array | string): Promise<Buffer>;
216
+ /**
217
+ * Compute a key agreement.
218
+ *
219
+ * @param {Buffer|Uint8Array|string} p A 32-byte point
220
+ * @param {Buffer|Uint8Array|string} sk A 32-byte scalar
221
+ * @returns {Buffer} The computed key agreement
222
+ */
223
+ export declare function keyAgreement(p: Buffer | Uint8Array | string, sk: Buffer | Uint8Array | string): Promise<Buffer>;